首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自动布局约束:如何使视图在调整大小时保持宽高比不变?

问自动布局约束:如何使视图在调整大小时保持宽高比不变?
EN

Stack Overflow用户
提问于 2013-01-07 08:07:31
回答 3查看 25.8K关注 0票数 31

在界面构建器中,我们可以固定高度,固定宽度,使两个视图的宽度相等,但是我如何设置约束,以便当调整视图大小时,它保持其宽/高比?

在我的特殊情况下,我的视图控制器中有一个UIImageView。当视图调整大小时,我希望我的图像视图调整大小,但保持3:2的宽:高比例。可以在IB中完成吗?有没有可能用代码来实现呢?

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-03-16 00:40:10

通过控制从视图拖动到视图本身并选择纵横比,可以在IB中添加纵横比约束。

票数 36
EN

Stack Overflow用户

发布于 2013-01-07 08:30:51

我不认为你可以在IB中做到这一点,但在代码中,可以这样做(iv是我进入图像视图的出口):

代码语言:javascript
复制
    [self.iv removeConstraints:self.iv.constraints];
    NSLayoutConstraint *con1 = [NSLayoutConstraint constraintWithItem:self.iv attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1  constant:100];
    NSLayoutConstraint *con2 = [NSLayoutConstraint constraintWithItem:self.iv attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:self.iv attribute:NSLayoutAttributeWidth multiplier:.66 constant:0];
    [self.iv addConstraints:@[con1,con2]];

这会显式地将高度设置为100,并将宽高比设置为3:2。

票数 34
EN

Stack Overflow用户

发布于 2015-05-02 02:39:51

苹果的这本指南对我真的很有帮助--它概述了两种方法,一种是关闭某些子视图的AutoLayout并直接设置框架,另一种是通过代码使用纯AutoLayout。

https://developer.apple.com/library/ios/technotes/tn2154/_index.html

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

https://stackoverflow.com/questions/14188187

复制
相关文章

相似问题

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