AutoLayout přehled

Post on 15-Jun-2015

116 views 7 download

description

Krátký úvod do AutoLayout na iOS, prezentováno na iOSova 20. 2. 2014.

transcript

AutoLayout!

Ondřej Hanák

iOSova 20. 2. 2014

Co to je

Co to je

• systém pro pozicování views

Co to je

• systém pro pozicování views

• popisuje vztahy mezi nimi

Co to je

• systém pro pozicování views

• popisuje vztahy mezi nimi

• absolutní i relativní hodnoty

Co to je

• systém pro pozicování views

• popisuje vztahy mezi nimi

• absolutní i relativní hodnoty

• nahrazuje koncept struts and springs za constraints

Co je potřeba

Co je potřeba

• iOS 6+

Co je potřeba

• iOS 6+

• pro každé view známé x, y, šířka a výška

Co je potřeba

• iOS 6+

• pro každé view známé x, y, šířka a výška

• jednoznačnost (priorita 0 až 1000)

Co je potřeba

• iOS 6+

• pro každé view známé x, y, šířka a výška

• jednoznačnost (priorita 0 až 1000)

• intrinsicContentSize a UIViewNoIntrinsicMetric

Matematika

Matematika

• lineární (ne)rovnice

Matematika

• lineární (ne)rovnice

• hodnota = jina_hodnota * nasobic + konstanta

Matematika

• lineární (ne)rovnice

• hodnota = jina_hodnota * nasobic + konstanta

• tlacitko_sirka >= rodic_sirka * 0.4 + 10

Matematika

• lineární (ne)rovnice

• hodnota = jina_hodnota * nasobic + konstanta

• tlacitko_sirka >= rodic_sirka * 0.4 + 10

• tlacitko_x = label_x * 1 + 0

Jak s tím pracovat

Jak s tím pracovat

• Interface Builder - Xcode 5 FTW

Jak s tím pracovat

• Interface Builder - Xcode 5 FTW

• outlets

Jak s tím pracovat

• Interface Builder - Xcode 5 FTW

• outlets

• kód s pomocí VFL: absolutní hodnoty

Jak s tím pracovat

• Interface Builder - Xcode 5 FTW

• outlets

• kód s pomocí VFL: absolutní hodnoty

• kód přímo: relativní hodnoty

Interface builderDocument outline Size inspector

Attributes inspector

Visual Formatting Language

Visual Formatting Language

[NSLayoutConstraint constraintsWithVisualFormat:@“V:|[image(>=100)]-(padding)-[title]“ options:0 metrics:metrics views:views];

Low level

Low level

[NSLayoutConstraint constraintWithItem:self.button attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeWidth multiplier:0.4 constant:0];

Chytáky

Chytáky• nejdřív view napojte na superview

Chytáky• nejdřív view napojte na superview

• nastavte translatesAutoresizingMask IntoConstraints = NO

Chytáky• nejdřív view napojte na superview

• nastavte translatesAutoresizingMask IntoConstraints = NO

• zapomeňte na initWithFrame

Chytáky• nejdřív view napojte na superview

• nastavte translatesAutoresizingMask IntoConstraints = NO

• zapomeňte na initWithFrame

• hodnoty vypočteny od didLayoutSubviews

Chytáky• nejdřív view napojte na superview

• nastavte translatesAutoresizingMask IntoConstraints = NO

• zapomeňte na initWithFrame

• hodnoty vypočteny od didLayoutSubviews

• násobič pouze pro čtení

Konec

Konec

• dotazy

Konec

• dotazy

• @ondrejhanak

Konec

• dotazy

• @ondrejhanak

• http://ondrejhanak.cz