IOS自动布局

参考资料
开源项目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];
    
}

  

posted @ 2014-03-28 12:08  骨头  阅读(14962)  评论(0编辑  收藏  举报