我遇到了一些与Autolayout有关的问题,并尝试让我的应用程序的布局在两种屏幕尺寸上看起来都不错。这是它在4英寸上的外观:
但是,这是它在3.5英寸上的外观:
我希望UIImageView保持固定在顶部,并且Watch / Listen按钮保持在一起固定在底部(具有相同的间距)。
并且,我希望标题/扬声器/日期标签位于UIImageView和按钮之间。
关于如何使用Autolayout进行此操作的想法?或者我是否需要对布局编码进行一些研究?
答案 0 :(得分:1)
在Interface Builder中完全设置它的最简单方法是使用不可见的间隔视图,原因我在这里解释:https://stackoverflow.com/a/20865342/341994
答案 1 :(得分:0)
我看到两种可能性:
将此内容添加到您的pch文件中:
'#define IS_IPHONE_5 (fabs((double) [[UIScreen mainScreen ] bounds].size.height - (double) 568) < DBL_EPSILON)`
并在代码中:
self.spacing.constant = IS_IPHONE_5 ? value1 : value2;
[self.view setNeedsLayout];
答案 2 :(得分:0)
我对这个问题有点迟了,但我认为使用包含视图要简单得多。创建一个视图,该视图约束到UIImageView的底部和UIButton的顶部(以及屏幕的左右边缘)。然后将UILabel放在该视图中。
您可以将中间标签水平和垂直居中,然后将其他标签限制在其中, OR 您可以创建另一个没有设置高度或宽度的子视图,但是将其固定在其中的标签上以获得其高度和宽度。然后,您可以在第一个包含视图中水平和垂直居中显示该视图。