在视图显示在屏幕上之前,我应该在哪里更新我的约束?
Where do I update my constraint before the view is on screen?
我需要根据设备的屏幕尺寸在视图出现在屏幕上之前更新一些 NSLayoutConstraints
。
我想要做的是让用户看不到这个更新。
而且我不知道在哪里可以做到这一点,因为:
- 如果我在 :
中这样做
- (void)viewWillLayoutSubviews
我的 UIViewController
它被调用了两次所以我对我的约束进行了两次计算并且我不想设置 bool 或计数器......
- 如果我在 :
中这样做
- (void)viewDidLoad
它不起作用,因为我根据此时高度为 0 的视图控制器的视图计算我的约束值。
我看到有很多自动布局的方法(setNeedsUpdate
...)
如果有人能告诉我在 viewController 生命周期中仅更新一次约束的最佳方法,那就太好了。
感谢您的帮助! (N.B:自动布局概念对我来说是新的。)
尝试覆盖视图控制器上的 updateViewConstraints
。 (别忘了调用 super ;))
您可以从情节提要中创建高度限制的出口。
@属性(强,非原子)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
}
我需要根据设备的屏幕尺寸在视图出现在屏幕上之前更新一些 NSLayoutConstraints
。
我想要做的是让用户看不到这个更新。 而且我不知道在哪里可以做到这一点,因为: - 如果我在 :
中这样做- (void)viewWillLayoutSubviews
我的 UIViewController
它被调用了两次所以我对我的约束进行了两次计算并且我不想设置 bool 或计数器......
- 如果我在 :
- (void)viewDidLoad
它不起作用,因为我根据此时高度为 0 的视图控制器的视图计算我的约束值。
我看到有很多自动布局的方法(setNeedsUpdate
...)
如果有人能告诉我在 viewController 生命周期中仅更新一次约束的最佳方法,那就太好了。
感谢您的帮助! (N.B:自动布局概念对我来说是新的。)
尝试覆盖视图控制器上的 updateViewConstraints
。 (别忘了调用 super ;))
您可以从情节提要中创建高度限制的出口。
@属性(强,非原子)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
}