我在.xib
文件中有一个宽度约束,我连接到一个插座,我想为iPhone 6更改其constant
。
在这一个之间:
//
// MyViewController.m
//
#import "MyViewController.h"
@interface MyViewController ()
@property (strong, nonatomic) IBOutlet NSLayoutConstraint *constraintViewWidth;
@property (nonatomic) BOOL isConstraintsUpdated;
@end
@implementation MyViewController
- (void)updateViewConstraints {
if (!self.isConstraintsUpdated) {
if (CGRectGetHeight([UIScreen mainScreen].bounds) == 667) {
constraintViewWidth.constant = 60;
}
self.isConstraintsUpdated = YES;
}
[super updateViewConstraints];
}
@end
和这一个:
//
// MyViewController.m
//
#import "MyViewController.h"
@interface MyViewController ()
@property (strong, nonatomic) IBOutlet NSLayoutConstraint *constraintViewWidth;
@property (nonatomic) BOOL isLayoutLoaded;
@end
@implementation MyViewController
- (void)viewDidLayoutSubviews {
[super viewDidLayoutSubviews];
if (!self.isLayoutLoaded) {
if (CGRectGetHeight([UIScreen mainScreen].bounds) == 667) {
constraintViewWidth.constant = 60;
}
self.isLayoutLoaded = YES;
}
}
@end
哪个是首选的?
我尝试使用第一个,但它不起作用,因为自定义常量被.xib
文件中的那个覆盖,尽管在updateViewConstraints
中更改它是最有意义的
第二个可以工作,但我不明白为什么我想在布局完成时更改约束。