swift 如何覆盖IOS / XCODE应用程序开发中内置的布局约束

yftpprvb  于 2023-08-02  发布在  Swift
关注(0)|答案(2)|浏览(129)

在我的iOS应用程序中,我有一个位置选项卡。有UIPickerViews来选择位置,有UIButton来接受所选位置。布局将按钮放置得太靠近选取器视图,并且在按下按钮时太容易更改所选取的项目。
我试图通过指定到最近的选择器的50像素距离来将按钮移动到离选择器视图更远的地方。为此,我在按钮上添加了一个约束。但是Xcode工具找到了一个指定0距离的相反约束。运行时的错误消息为:
“<NSLayoutConstraint:0x 600002822 da 0 V:[UIPickerView:0x 7 fb 0 b2 e1 d5 f0]-(50)-[UIButton:0x 7 fb 0 b2 e1 e7 c 0 '在Map上显示'](active)>",“<NSLayoutConstraint:0x 6000028276 b 0 'UISV-spacing' V:[UIPickerView:0x 7 fb 0 b2 e1 d5 f0]-(0)-[UIButton:0x 7 fb 0 b2 e1 e7 c 0 '在Map上显示'](active)>”
所以这行不通。第二个限制不是我提出的。
我如何将按钮移动到离pickerview超过0像素的地方。

ftf50wuq

ftf50wuq1#

正如您所看到的,UI设计不仅仅是向屏幕添加组件。
通过代码,您可以使用setCustomSpacing(_:after:)来“微调”布局。
您也可以在堆栈视图中嵌入堆栈视图,如下所示:
x1c 0d1x的数据



我夸大了垂直间距来说明问题。
在不同的iPhone尺寸上查看此内容:



我不知道你是否考虑过如何处理其他特质的布局--比如在设备旋转时,或者在iPad上运行时……或者在iPad上进行多任务处理--但是你可能最终会得到一些特性变化,以便在宽短格式的布局中得到一些东西:


wgeznvg7

wgeznvg72#

我不需要用复杂的约束来微观地管理堆栈视图布局,而是尝试堆栈视图分布的选择。在属性检查器中选择堆栈视图,并从提供的选项中选择,找到一个您喜欢的并在几个设备模拟器上试用。

相关问题