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];
    
}

  

相關文章
相關標籤/搜索