我需要在屏幕上显示视图之前更新一些NSLayoutConstraints
,具体取决于设备的屏幕尺寸。
我想要做的是这个更新对于用户来说是不可见的。 我不知道我能做到这一点,因为: - 如果我这样做:
- (void)viewWillLayoutSubviews
我的UIViewController
它被调用两次所以我对我的约束进行了两次计算,我不想设置一个bool或一个计数器......
- 如果我这样做:
- (void)viewDidLoad
它不起作用,因为我根据视图控制器的视图计算我的约束值,此时此视图控制器的高度为0。
我看到有很多自动布局方法(setNeedsUpdate
...)
如果有人能告诉我在viewController lifeCycle中只有一次更新约束的最佳方法,那就太棒了。
感谢您的帮助! (N.B:自动布局概念对我来说是新的。)
答案 0 :(得分:0)
尝试在视图控制器上覆盖updateViewConstraints
。 (别忘了给超级打电话;))
答案 1 :(得分:0)
您可以从故事板创建高度限制的出口。
@property(强,非原子)IBOutlet NSLayoutConstraint * heightForYourView;
&安培;在viewDidLoad中编写以下代码,它将自动更改大小
//if you want to change the size as per device check device type in my case it iphone6
if (IS_IPHONE_6)
{
self.heightForYourView.constant=250;//height you want
}