ios - 在纵向和横向中使用 AutoLayout

标签 ios objective-c xcode autolayout

Auto Layout,尽善尽美,约束让我发疯。我在 IB 中设计了纵向模式,但无法获得所需的横向模式。

layout

请注意,当方向更改为横向时,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/

相关文章:

ios - 在枚举之前使用 '\' 的观察者实现

ios - dispatch_queue 和返回数据

iphone - 如何将 NSMutableDictionary 保存到文档中的文件中?

objective-c - iOS : Saving from current UIImageView to Photo Album Failed - Unable to save to photo album

ios - 在我们自己的声明方法中如何获取单元格选择行呢?

c++ - 如何在 Xcode C++ 中更改编译器

ios - 设置 UIView 的cornerRadius 时如何防止 subview 被剪切?

iOS 使用彩色动画按钮点击不起作用

ios - 如何根据设备更改 View 高度? (xcode)

xcode - Xcode 文档注释的快捷方式