嗨,我想以編程方式使用添加UIViews
自動佈局。 在這裏我的主要要求是我想設置firstView(即myView1
)尾部空間是「30」,我想設置第二個視圖(即myView2
)是從第一個視圖30像下面的距離。如何以編程方式使用自動佈局以編程方式添加UIviews
爲此,我編寫了一些代碼(使用視覺格式和約束項目格式),但這是行不通的。
代碼:
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
UIView *myView1 = [[UIView alloc] init];
myView1.backgroundColor = [UIColor redColor];
myView1.translatesAutoresizingMaskIntoConstraints = NO;
[self.view addSubview:myView1];
UIView *myView2 = [[UIView alloc] init];
myView2.backgroundColor = [UIColor orangeColor];
myView2.translatesAutoresizingMaskIntoConstraints = NO;
[self.view addSubview:myView2];
[self.view addConstraints:[NSLayoutConstraint
constraintsWithVisualFormat:@"V:|-[myView1(==50)]-50-|"
options:0
metrics:nil
views:NSDictionaryOfVariableBindings(myView1)]];
[self.view addConstraints:[NSLayoutConstraint
constraintsWithVisualFormat:@"V:|-[myView2(==50)]-50-|"
options:0
metrics:nil
views:NSDictionaryOfVariableBindings(myView2)]];
//Constraints with item formate
NSLayoutConstraint *constraint = [NSLayoutConstraint constraintWithItem:myView1 attribute:NSLayoutAttributeTrailing relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeTrailing multiplier:1.0f constant:-30.f];
[self.view addConstraint:constraint];
constraint = [NSLayoutConstraint constraintWithItem:myView1 attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem: nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0f constant:50.0f];
[self.view addConstraint:constraint];
NSLayoutConstraint*constraint1 = [NSLayoutConstraint constraintWithItem:myView2 attribute:NSLayoutAttributeLeading relatedBy:NSLayoutRelationEqual toItem:myView1 attribute:NSLayoutAttributeTrailing multiplier:1.0f constant:-30.f];
[self.view addConstraint:constraint1];
constraint1 = [NSLayoutConstraint constraintWithItem:myView2 attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem: nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0f constant:50.0f];
[self.view addConstraint:constraint1];
//Constraints with visual formate
[self.view addConstraints:[NSLayoutConstraint
constraintsWithVisualFormat:@"H:|-[myView1(==50)]-20-[myView(==50)]-30-|"
options:0
metrics:nil
views:NSDictionaryOfVariableBindings(myView1,myView2)]];
}
,你可以嘗試的包裝https://github.com/robb/Cartography – Shoaib
的[創建佈局編程限制(可能重複http://stackoverflow.com/問題/ 12826878 /創建佈局約束 - 以編程方式) –