你好,歡迎來到IOS教程網

 Ios教程網 >> IOS訊息 >> 關於IOS >> iOS AutoLayout 編碼

iOS AutoLayout 編碼

編輯:關於IOS

//這個地方不要定義Frame,下面的Visual Format才是定義Frame相關的地方

UIView *redView = [[UIView alloc] init];

redView.backgroundColor = [UIColor redColor];

//參照Apple Doc 這個地方設置NO,是為了不讓Constraint與View本身的autoresize沖突

[redView setTranslatesAutoresizingMaskIntoConstraints:NO];

[self.view addSubview:redView];

UIView *blueView = [[UIView alloc] init];

blueView.backgroundColor = [UIColor blueColor];

[blueView setTranslatesAutoresizingMaskIntoConstraints:NO];

[self.view addSubview:blueView];

//綁定兩個View相關

NSDictionary *views = NSDictionaryOfVariableBindings(redView, blueView);

//此處的constraint是為了定義Frame水平方向相關(x, width)

[self.view addConstraints: [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-(>=10)-[redView(200)]"

options:0

metrics:nil

views:views]];

//此處的constraint是為了定義Frame豎直方向相關(y, height)

[self.view addConstraints: [NSLayoutConstraint constraintsWithVisualFormat:@"V:|-(>=240)-[redView(100)]"

options:0

metrics:nil

views:views]];

[self.view addConstraints: [NSLayoutConstraint constraintsWithVisualFormat:@"H:[blueView(==redView)]"

options:0

metrics:nil

views:views]];

[self.view addConstraints: [NSLayoutConstraint constraintsWithVisualFormat:@"V:|-(40)-[blueView(==redView)]"

options:0

metrics:nil

views:views]];

//此處的constraint是為了描述以上兩個view的關系

[self.view addConstraint: [NSLayoutConstraint constraintWithItem:blueView

attribute:NSLayoutAttributeLeft

relatedBy:NSLayoutRelationEqual

toItem:redView

attribute:NSLayoutAttributeLeft

multiplier:1

constant:0]];

以上.

關於Method和Macro不提供解釋,請參照Apple Doc.

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved