使用自动布局以编程方式更改框架
我有一个UITableView
与Autolayout和我需要降低GADBannerView
出现在屏幕的底部的高度。
不幸的是Autolayout是不可能修改框架的。 解决办法是删除Autolayout并手动设置框架。 这是非常危险的,因为我所有的应用程序都能在3.5'和4.0'显示器上正常工作,并且移除自动布局,从而导致新的testing阶段和更多的努力
即使自动布局被启用,是否有改变框架的方法?
让您的UITableView
约束底部布局设置为0,使一个IBOutlet
。 现在让你的GADBannerView
高度是40,所以改变你的outlet.constant = 40;
有关如何制作IBOutlet
并更改其价值的更多信息,请IBOutlet
此或此希望,这将有所帮助。
编辑:对于那些寻求示例,请按照这些简单的步骤(因为这是被接受的答案,我认为这是值得有一个例子。在这个例子信贷@manujmv)
-
在界面中为您的视图创build一个高度约束。
-
然后在你的类中为这个约束添加一个IBOutlet对象。 例如:
@属性(弱,非primefaces)IBOutlet NSLayoutConstraint * heightConstraint;
在连接面板中连接这个对象。
-
然后在需要的时候改变这个约束的值
self.heightConstraint.constant = 40;
而不是试图改变视图的框架,使用自动布局添加高度约束,并减less这个约束的价值。 执行以下步骤:
- 在界面中为您的视图创build一个高度限制。
-
然后在你的类中为这个约束添加一个IBOutlet对象。 例如,
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *heightConstraint;
在连接面板中连接这个对象。
-
然后在需要的时候改变这个约束的值
self.heightConstraint.constant = 40;
还有一件事,你必须调用[self.view layoutIfNeeded];
方法一旦你约束的约束。
请享用 :)