首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在肖像和风景中使用AutoLayout

在肖像和风景中使用AutoLayout
EN

Stack Overflow用户
提问于 2013-08-13 23:35:10
回答 3查看 25.2K关注 0票数 26

自动布局,尽管它很好,但它的约束让我抓狂。我有在IB设计的肖像模式,但我无法获得所需的横向工作。

请注意,当方向更改为横向时,UIImageView块之间的间距减小,并且SAMPLE TEXT的文本对齐方式更改为右对齐。

目前,我已经为它的工作添加了一些约束。然而,我需要保持UIImageView块之间的空间固定,因此它在纵向看起来很狭窄,在横向看起来很好。我需要它是均匀分布在肖像和压缩在风景(如上图)。类似地,目前我的约束条件是调出文本,但它不会将文本保持在屏幕的中心和右对齐。

使用Auto Layout可以做到这一点吗?如果是这样的话,是怎么做的?非常感谢您的帮助。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-08-14 01:02:16

有几种方法可以解决这个问题。一种方法是将您的3个图像视图封装在一个UIView中。将顶部和底部的图像视图约束分别给予顶部和底部,并给中间的图像视图一个centerY约束。给这个封闭视图一个固定的高度和宽度,并对控制器视图的顶部进行约束。为该封闭视图的高度约束创建一个IBOutlet,并在旋转时对其进行更改。在下面的示例中,我将其在纵向高度设置为350:

代码语言:javascript
复制
-(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。

票数 12
EN

Stack Overflow用户

发布于 2013-08-14 00:26:06

是的,这可以通过自动布局来完成。如果要根据方向增大和/或减小视图之间的间距,可以对约束使用小于或等于或大于或等于关系(而不是相等),这允许增大或缩小距离:

尝试一下,你应该能够得到你想要的东西。

票数 6
EN

Stack Overflow用户

发布于 2013-08-14 00:15:57

是的,使用自动布局绝对可以做到这一点。通过一系列的步骤,我认为作为答案可能太长了,你可以保持ImageViews之间的间距,并保持文本的对齐方式不变。

基本上,你必须固定每个ImageView的一角,并移除一些约束,这样当你改变方向时,它不会自动压缩间距。

关于如何做到这一点的完整解释(几乎就是你所要求的) is explained in this tuorial。你可以在页面的中途找到它。

希望这就是你要找的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18213376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档