做自(zì)由與創造的先行者

iOS自(zì)動布局

iOS開(kāi)發手冊

簡介

自(zì)動布局在iOS 6.0中引入,僅可以支持IOS6.0 及 更高(gāo)版本。它可以幫助我們創建用(yòng)于多個種設備的界面。

實例步驟

1.創建一個簡單的 View based application

2.修改 ViewController.m 的文(wén)件内容,如下(xià)所示

#import "ViewController.h"

@interface ViewController ()

@property (nonatomic, strong) UIButton *leftButton;

@property (nonatomic, strong) UIButton *rightButton;

@property (nonatomic, strong) UITextField *textfield;

@end

@implementation ViewController

- (void)viewDidLoad{

[super viewDidLoad];

UIView *superview = self.view;

/*1. Create leftButton and add to our view*/

self.leftButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];

self.leftButton.translatesAutoresizingMaskIntoConstraints = NO;

[self.leftButton setTitle:@"LeftButton" forState:UIControlStateNormal];

[self.view addSubview:self.leftButton];

/* 2. Constraint to position LeftButton's X*/

NSLayoutConstraint *leftButtonXConstraint = [NSLayoutConstraint

constraintWithItem:self.leftButton attribute:NSLayoutAttributeCenterX

relatedBy:NSLayoutRelationGreaterThanOrEqual toItem:superview attribute:

NSLayoutAttributeCenterX multiplier:1.0 constant:-60.0f];

/* 3. Constraint to position LeftButton's Y*/

NSLayoutConstraint *leftButtonYConstraint = [NSLayoutConstraint

constraintWithItem:self.leftButton attribute:NSLayoutAttributeCenterY

relatedBy:NSLayoutRelationEqual toItem:superview attribute:

NSLayoutAttributeCenterY multiplier:1.0f constant:0.0f];

/* 4. Add the constraints to button's superview*/

[superview addConstraints:@[ leftButtonXConstraint,

leftButtonYConstraint]];

/*5. Create rightButton and add to our view*/

self.rightButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];

self.rightButton.translatesAutoresizingMaskIntoConstraints = NO;

[self.rightButton setTitle:@"RightButton" forState:UIControlStateNormal];

[self.view addSubview:self.rightButton];

/*6. Constraint to position RightButton's X*/

NSLayoutConstraint *rightButtonXConstraint = [NSLayoutConstraint

constraintWithItem:self.rightButton attribute:NSLayoutAttributeCenterX

relatedBy:NSLayoutRelationGreaterThanOrEqual toItem:superview attribute:

NSLayoutAttributeCenterX multiplier:1.0 constant:60.0f];

/*7. Constraint to position RightButton's Y*/

rightButtonXConstraint.priority = UILayoutPriorityDefaultHigh;

NSLayoutConstraint *centerYMyConstraint = [NSLayoutConstraint

constraintWithItem:self.rightButton attribute:NSLayoutAttributeCenterY

relatedBy:NSLayoutRelationGreaterThanOrEqual toItem:superview attribute:

NSLayoutAttributeCenterY multiplier:1.0f constant:0.0f];

[superview addConstraints:@[centerYMyConstraint,

rightButtonXConstraint]];

//8. Add Text field

self.textfield = [[UITextField alloc]initWithFrame:

CGRectMake(0, 100, 100, 30)];

self.textfield.borderStyle = UITextBorderStyleRoundedRect;

self.textfield.translatesAutoresizingMaskIntoConstraints = NO;

[self.view addSubview:self.textfield];

//9. Text field Constraints

NSLayoutConstraint *textFieldTopConstraint = [NSLayoutConstraint

constraintWithItem:self.textfield attribute:NSLayoutAttributeTop

relatedBy:NSLayoutRelationGreaterThanOrEqual toItem:superview

attribute:NSLayoutAttributeTop multiplier:1.0 constant:60.0f];

NSLayoutConstraint *textFieldBottomConstraint = [NSLayoutConstraint

constraintWithItem:self.textfield attribute:NSLayoutAttributeTop

relatedBy:NSLayoutRelationGreaterThanOrEqual toItem:self.rightButton

attribute:NSLayoutAttributeTop multiplier:0.8 constant:-60.0f];

NSLayoutConstraint *textFieldLeftConstraint = [NSLayoutConstraint

constraintWithItem:self.textfield attribute:NSLayoutAttributeLeft

relatedBy:NSLayoutRelationEqual toItem:superview attribute:

NSLayoutAttributeLeft multiplier:1.0 constant:30.0f];

NSLayoutConstraint *textFieldRightConstraint = [NSLayoutConstraint

constraintWithItem:self.textfield attribute:NSLayoutAttributeRight

relatedBy:NSLayoutRelationEqual toItem:superview attribute:

NSLayoutAttributeRight multiplier:1.0 constant:-30.0f];

[superview addConstraints:@[textFieldBottomConstraint ,

textFieldLeftConstraint, textFieldRightConstraint,

textFieldTopConstraint]];

}

- (void)didReceiveMemoryWarning

{

[super didReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

@end

網站(zhàn)建設開(kāi)發|APP設計(jì)開(kāi)發|小(xiǎo)程序建設開(kāi)發
下(xià)一篇:iOS應用(yòng)程序調試
上(shàng)一篇:iOS Twitter和(hé)Facebook