Upload
ondrej-hanak
View
117
Download
7
Embed Size (px)
DESCRIPTION
Krátký úvod do AutoLayout na iOS, prezentováno na iOSova 20. 2. 2014.
Citation preview
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