我正在尝试使用xcode 7上的storyboard中的自动大小类来将UI元素定位在控制器中。我遇到的问题是当我尝试使用"添加缺失的约束时#34;函数(位于控制台的右下角),它正确定位我的UI元素,除了最后的元素(图片描述更好)。下面的第一张图显示了故事板文件,其中我只想要3个按钮(相互堆叠在一起)与任何屏幕右上角的宽度和长度相同。
然而,当我添加约束并运行模拟时,似乎顶部的两个按钮正确定位,具有正确的长度和宽度,但第三个按钮不合适(下图)。
所以我的问题是,我是否忘记了让所有按钮自行定位的步骤?或者我应该尝试将所有内容转换为百分比并根据屏幕的百分比放置UI元素(如果是这样,我将如何去做)?
我还尝试在第三个按钮下添加另一个空白按钮(删除按钮标签)并添加这样的约束,但它对我没有用。如果您有任何建议,请告诉我,谢谢!
答案 0 :(得分:2)
在您的情况下,Autolayout
您需要向UIButton
提供约束是4个约束。
如果你错过任何一个,那么你肯定会收到错误。那么,你的错误是什么?
对于第三个UIButton
,你没有给出高度,而你给出了上面两个按钮。
因此,只需删除UIButton
的底部约束,并将相等的高度设置为UIButton
以上。
仅供参考,未经您方的任何确认,请勿使用Add Missing Constraints
。
更新
观看此视频,以移除trailing
或leading
页边距:
答案 1 :(得分:1)
如果在设置自动布局约束时使用“预览”屏幕,则实际上可以看到解决方案的实际效果。我刚刚创建了一个类似的视图和按钮,并逐步完成了整个过程。我给按钮着色并命名它们以使事情变得明显。
现在,Button1会在预览屏幕的右上角与其对齐。
Button2现在将在预览中捕捉到位。
现在,无论设备如何,您都会在预览中看到您的按钮位置正确。
只要您为每个按钮指定高度和宽度,就不必担心屏幕的左边缘或底边缘。他们每个人都知道"坚持"在右上方,他们知道大小。
**注意:如果您不熟悉"预览"选项... 打开故事板后,按住Option并再次选择故事板,以获得右侧故事板的另一个副本。在左侧突出显示您感兴趣的视图控制器。在右侧,选择“预览”选项,如下所示。
现在,您可以将故事板和预览放在一起,这样您就可以看到所做的任何自动布局更改的确切影响。您还可以在预览中添加或删除设备。