Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Autolayout

925 views

Published on

Published in: Technology, Art & Photos
  • Be the first to comment

  • Be the first to like this

Autolayout

  1. 1. Autolayout Kevin Shen 13年7月2日星期二
  2. 2. Auto Layout 基於約束性、描述性的布局系統 13年7月2日星期二
  3. 3. 基於約束 描述性 布局系統 以View之間的相對關係決定位置 約束可使用數學式或可視化語言描述 系統依約束自動決定frame 13年7月2日星期二
  4. 4. 如何開始使用Autolayout? 13年7月2日星期二
  5. 5. Interface Builder 13年7月2日星期二
  6. 6. Interface Builder 13年7月2日星期二
  7. 7. 使用API -(void)updateViewConstraints { [super updateViewConstraints]; ... } UIView -(void)updateViewConstraints { [super updateViewConstraints]; ... } UIViewController 13年7月2日星期二
  8. 8. UIView *superview = self.view; superview.translatesAutoresizingMaskIntoConstraints = NO; 關掉AutoResize 13年7月2日星期二
  9. 9. 使用API view1.attribute = multiplier ⨉ view2.attribute + constant NSLayoutConstraint *constraint = [NSLayoutConstraint constraintWithItem:button attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:superview attribute:NSLayoutAttributeBottom multiplier:1.0 constant:-padding] [self.view addConstraint: constraint]; UIView’s new API -(void)addConstraint:(NSLayoutConstraint *)constraint; >= <= 13年7月2日星期二
  10. 10. 使用API view1.attribute = multiplier ⨉ view2.attribute + constant NSLayoutConstraint *constraint = [NSLayoutConstraint constraintWithItem:button attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:superview attribute:NSLayoutAttributeBottom multiplier:1.0 constant:-padding] [self.view addConstraint: constraint]; UIView’s new API -(void)addConstraint:(NSLayoutConstraint *)constraint; >= <= 13年7月2日星期二
  11. 11. 13年7月2日星期二
  12. 12. 13年7月2日星期二
  13. 13. 13年7月2日星期二
  14. 14. Visual Format Language 13年7月2日星期二
  15. 15. [NSLayoutConstraint constraintsWithVisualFormat: @"[cancelButton]-[acceptButton]" options:0 metrics:nil views:viewsDictionary]; UIButton *cancelButton = ... UIButton *acceptButton = ... viewsDictionary = NSDictionaryOfVariableBindings(cancelButton,acceptButton); -(void)addConstraints:(NSArray *) constraints; 13年7月2日星期二
  16. 16. Ambiguous Layout Unsatisfiable Constraints 可能發生的錯誤 13年7月2日星期二
  17. 17. NavigationController Edit EditBack Back Label 9:41 AM 9:41 AM translatesAutoresizingMaskIntoConstraints要設為YES! 13年7月2日星期二

×