ios - 即使启用了自动布局,我也可以以编程方式设置特定 View 的框架吗?

标签 ios uiview uiviewcontroller ios8 autolayout

假设我有一个 View Controller A,里面有 5 个 View ,比如标签、按钮。我已将约束设置为 4 个 View 。但是,对于第 5 种观点,情况有所不同。在肖像中,我需要不同的 x、y 位置以及高度和宽度。在风景中,我需要不同的 x、y 位置以及高度和宽度。因此,不可能为此定义约束,因为这是一种习惯。我只需要在我希望将 View 放置在不同方向的任何地方以编程方式设置框架。

有什么解决办法吗?

最佳答案

检测到方向后,您可以使用连接的控件IBOutlets来设置框架,例如:

[myView setFrame:CGRectMake(x,y,width,height)];

希望对你有帮助

编辑

首先在 Storyboard或您的 IB 中创建一个约束,然后为该约束创建一个导出:

@property (weak, nonatomic) IBOutlet NSLayoutConstraint *viewHeightConstraint;

然后以编程方式更改此约束,例如:

self.viewHeightConstraint.constant = 40;

关于ios - 即使启用了自动布局,我也可以以编程方式设置特定 View 的框架吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29889769/

相关文章:

ios - 在 Swift 中测试我的应用程序时出错

ios - 从存储在 32/64 位 NSNumber 中的 unix 时间戳创建 NSDate

ios - setFrame 不会做任何事情

ios - Xcode 显示加载 View ,直到加载第二个 View (在 segue show 上)

ios - 什么是 UIViewController 中的扩展边缘属性?

iphone - 触摸时 UIScrollView 使应用程序崩溃

ios - Objective C 为什么我需要在这种情况下进行类型转换?

ios - 如何在实际对象初始化之前请求权限?

ios - 如何将 CATransform3DTranslate 转换为 CGAffineTransform,以便它可以模仿轮播 View

ios - 快速动画 UIView 背景颜色