参考资料
开源项目Masonry旨在让自动布局(Auto Layout)的代码更简洁、可读性更强,下面是它的地址,个人认为在开发过程中使用Masonry可以是代码更加友好
- (void)viewDidLoad { [super viewDidLoad]; [self addNavigationBar:FEEDBACK_VIEW_CONTROLLER]; UILabel *note = [[UILabel alloc] init]; [note setText:@"欢迎提出宝贵意见!您留下的每一份心意都将浇灌母婴宝的茁壮成长。"]; [note setLineBreakMode:NSLineBreakByWordWrapping]; note.numberOfLines = 0; [self.view addSubview:note]; //将自适应向布局约束的转化关掉(根据情况有时需要有时不需要) [note setTranslatesAutoresizingMaskIntoConstraints:NO]; [self.view addConstraint:[NSLayoutConstraint constraintWithItem:note attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:navBar attribute:NSLayoutAttributeBottom multiplier:1.0 constant:10]]; [self.view addConstraint:[NSLayoutConstraint constraintWithItem:note attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeLeft multiplier:1.0 constant:10]]; [self.view addConstraint:[NSLayoutConstraint constraintWithItem:note attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeRight multiplier:1.0 constant:-10]]; UITextView *tfContent = [[UITextView alloc] init]; [tfContent setTranslatesAutoresizingMaskIntoConstraints:NO]; [tfContent setBackgroundColor:[UIColor whiteColor]]; [tfContent setReturnKeyType:UIReturnKeyDone]; [self.view addSubview:tfContent]; [self.view addConstraint:[NSLayoutConstraint constraintWithItem:tfContent attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:note attribute:NSLayoutAttributeBottom multiplier:1.0 constant:10]]; [self.view addConstraint:[NSLayoutConstraint constraintWithItem:tfContent attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeLeft multiplier:1.0 constant:10]]; [self.view addConstraint:[NSLayoutConstraint constraintWithItem:tfContent attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeRight multiplier:1.0 constant:-10]]; [self.view addConstraint:[NSLayoutConstraint constraintWithItem:tfContent attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0 constant:100]]; UITextField *tfEmail = [UITextField new]; [tfEmail setTranslatesAutoresizingMaskIntoConstraints:NO]; [tfEmail setBackgroundColor:[UIColor whiteColor]]; [tfEmail setClearButtonMode:UITextFieldViewModeAlways]; [tfEmail setReturnKeyType:UIReturnKeyDone]; [tfEmail setPlaceholder:@"请输入邮箱,以便我们联系你!"]; [self.view addSubview:tfEmail]; [self.view addConstraint:[NSLayoutConstraint constraintWithItem:tfEmail attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:tfContent attribute:NSLayoutAttributeBottom multiplier:1.0 constant:10]]; [self.view addConstraint:[NSLayoutConstraint constraintWithItem:tfEmail attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeLeft multiplier:1.0 constant:10]]; [self.view addConstraint:[NSLayoutConstraint constraintWithItem:tfEmail attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeRight multiplier:1.0 constant:-10]]; [self.view addConstraint:[NSLayoutConstraint constraintWithItem:tfEmail attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0 constant:35]]; UIButton *btnSubmit = [[UIButton alloc] init]; [btnSubmit setTranslatesAutoresizingMaskIntoConstraints:NO]; [btnSubmit setTitle:STRING_COMMON_SUBMIT forState:UIControlStateNormal]; [btnSubmit setBackgroundImage:[UIImage imageNamed:@"bg_red_orange"] forState:UIControlStateNormal]; [btnSubmit setBackgroundImage:[UIImage imageNamed:@"bg_red"] forState:UIControlStateHighlighted]; [self.view addSubview:btnSubmit]; NSMutableArray *tmpConstraints = [NSMutableArray array]; [tmpConstraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[tfEmail]-10-[btnSubmit(==35)]" options:0 metrics:nil views:NSDictionaryOfVariableBindings(tfEmail,btnSubmit)]]; [tmpConstraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-10-[btnSubmit]-10-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(btnSubmit)]]; [self.view addConstraints:tmpConstraints]; }