Auto Layout,尽善尽美,约束让我发疯。我在 IB 中设计了纵向模式,但无法获得所需的横向模式。
请注意,当方向更改为横向时,UIImageView block 之间的间距会减小,并且 SAMPLE TEXT
的文本对齐方式会更改为右对齐。
目前,我为它添加了一些限制条件。但是,我需要保持 UIImageView block 之间的空间固定,因此它在纵向上看起来局促而在横向上看起来很好。我需要它在纵向上均匀分布并在横向上压缩(如上图所示)。同样,目前我的约束会调出文本,但不会将其保持在屏幕中央并右对齐。
这在自动布局中是否可行?如果是这样,如何?非常感谢帮助。
最佳答案
有几种方法可以解决这个问题。一种方法是将 3 个 ImageView 包含在 UIView 中。分别给顶部和底部 ImageView 约束顶部和底部,并给中间的一个 centerY 约束。给这个封闭 View 一个固定的高度和宽度,并限制 Controller View 的顶部。为这个封闭 View 创建一个 IBOutlet 高度约束,并在旋转时更改它。在下面的示例中,我给它设置了 350 的纵向高度:
-(void)updateViewConstraints {
[super updateViewConstraints];
if (self.view.bounds.size.height < self.view.bounds.size.width) {
self.heightCon.constant = self.view.bounds.size.height;
}else{
self.heightCon.constant = 350;
}
}
至于标签,最简单的方法是删除您的约束(bottom 和 centerX),并在旋转时添加 trailing 和 centerY。
关于ios - 在纵向和横向中使用 AutoLayout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18213376/