auto layout part 1

30
Auto Layout I Liyao Chen @ KKBOX

Upload: liyao-chen

Post on 12-Apr-2017

1.773 views

Category:

Software


1 download

TRANSCRIPT

Page 1: Auto Layout part 1

Auto Layout I

Liyao Chen @ KKBOX

Page 2: Auto Layout part 1

Outlines

• What is Auto Layout

• UIScrollView

• Self-sizing UITableViewCell

• Animation

Page 3: Auto Layout part 1

What is Auto Layout?

Page 4: Auto Layout part 1

Frame layout ?

Auto Layout ? (why)

What is Auto Layout?

Page 5: Auto Layout part 1

• Content size (localization, font size …etc)

• Adaptive app size

Auto Layout ?What is Auto Layout?

Page 6: Auto Layout part 1

Layout

What is Auto Layout?

UI (Constraints) Auto Layout Engine Layout

Page 7: Auto Layout part 1

What is Auto Layout?

iOS team 700

Frame Layout Zonble - 500

- 200

- 100

Page 8: Auto Layout part 1

What is Auto Layout?

iOS team 700

Auto Layout

Zonble - 200 200

- 100 50

- 100

Page 9: Auto Layout part 1

NSLayoutConstraint@interface NSLayoutConstraint : NSObject @property UILayoutPriority priority; //1-1000 @property CGFloat constant; @end

Page 10: Auto Layout part 1

Demo• Auto Layout frame layout

NSLayoutConstraint

Page 11: Auto Layout part 1

Practice 1NSLayoutConstraint

Page 12: Auto Layout part 1

Practice 2NSLayoutConstraint

Page 13: Auto Layout part 1

Intrinsic Content Size

/ Layout

Page 14: Auto Layout part 1

Intrinsic Content Size

Page 15: Auto Layout part 1

Intrinsic Content Size

Page 16: Auto Layout part 1

Intrinsic Content Size

• Content Hugging

• Content Compression Resistance

Page 17: Auto Layout part 1

Intrinsic Content Size

Page 18: Auto Layout part 1

Demo• Label

Intrinsic Content Size

Page 19: Auto Layout part 1

Demo• Label

Intrinsic Content Size

Page 20: Auto Layout part 1

Practice 3Intrinsic Content Size

Page 21: Auto Layout part 1

Lifecycle

Page 22: Auto Layout part 1

UIScrollView

Page 23: Auto Layout part 1

self-sizing cellself.tableView.estimatedRowHeight = 78; self.tableView.rowHeight = UITableViewAutomaticDimension;

Page 24: Auto Layout part 1

Constraints with codeUILabel *label = [[UILabel alloc] init]; label.translatesAutoresizingMaskIntoConstraints = NO; label.font = self.font; label.numberOfLines = 0; self.label = label;

NSLayoutConstraint *top = [NSLayoutConstraint constraintWithItem:self attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:label attribute:NSLayoutAttributeTop multiplier:1.0 constant:0]; NSLayoutConstraint *left = [NSLayoutConstraint constraintWithItem:self attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:label attribute:NSLayoutAttributeLeft multiplier:1.0 constant:0]; NSLayoutConstraint *right = [NSLayoutConstraint constraintWithItem:self attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual toItem:label attribute:NSLayoutAttributeRight multiplier:1.0 constant:0]; NSLayoutConstraint *equalWidth = [NSLayoutConstraint constraintWithItem:self attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:label attribute:NSLayoutAttributeWidth multiplier:1.0f constant:0]; [self addSubview:label]; // subview constraints [self addConstraints:@[top, left, right, equalWidth]];

Page 25: Auto Layout part 1

Visual Format LanguageNSArray *constraintsV = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|-84-[redBox(==200)]-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(redBox)];

@“H:|-[redBox]-|" @"V:|-84-[redBox(==200)]-|"

Page 26: Auto Layout part 1

- UI Content size (localization) - Layout code - - code - - - IB Constraint

Page 27: Auto Layout part 1

QnA

• Q. Interface build xml PR ?

• A. Frame Layout UI code

Page 28: Auto Layout part 1

Reference

• sample code - https://github.com/gliyao/LCAutolayoutExample

Page 29: Auto Layout part 1

Thanks for listening

Page 30: Auto Layout part 1

We are hiring!

@ KKBOX