SlideShare uma empresa Scribd logo
1 de 19
Baixar para ler offline
Simplificando Auto
Layout via código
Uma abordagem simples utilizando formato visual (VFL)
Alécio Gomes
25 anos
Desenvolvedor desde 2006
Fundador da Sparta Labs
frame nunca mais!
translatesAutoresizingMaskIntoConstraints
UIView *view = [UIView new];
view.translatesAutoresizingMaskIntoConstraints = NO;
view...
@implementation UIView (Autolayout)
+ (id)autolayoutView
{
UIView *view = [self new];
view.translatesAutoresizingMaskIntoConstraints = NO;
return view;
}
@end
A maneira difícil
- (void)loadView {
self.view = [UIView new];
UIView *myView = [UIView autolayoutView];
[self.view addSubview:myView];
...
A maneira difícil
+ (NSLayoutConstraint *)
[NSLayoutConstraint constraintWithItem:myView
attribute:NSLayoutAttributeLeft
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeLeft
multiplier:1
constant:10]];
Para ancorar a esquerda:
cê ta de
brinks né?
Visual Format Language
+ (NSArray *)constraintsWithVisualFormat:(NSString *)format
options:(NSLayoutFormatOptions)opts
metrics:(NSDictionary *)metrics
views:(NSDictionary *)views
views
// São todos a mesma coisa
NSDictionaryOfVariableBindings(v1, v2, v3);
[NSDictionary dictionaryWithObjectsAndKeys:v1, @“v1”,
v2, @“v2”,
v3, @“v3”, nil];
@{@“v1”: v1, @“v2”: v2, @“v3": v3};
metrics
NSDictionary *metrics = @{@"buttonWidth":@200.0};
options
NSLayoutFormatAlignAllTop | NSLayoutFormatAlignAllBottom
Em um layout horizontal:
NSLayoutFormatAlignAllLeft | NSLayoutFormatAlignAllRight
Em um layout vertical:
NSLayoutFormatAlignAllCenterY
Em um layout horizontal:
format
[label]
Views são representadas dentro de colchetes:
|A superview é representada por um pipe:
|-[label]-|
Espaçamento são representadas por um hífen:
V:|-[label]-|
Orientação:
format (spacing)
|-30.0-[button]-30.0-|
Espaçamento pode ser explícito:
NSDictionary *metrics = @{@“spacing”: @30};
|-spacing-[button]-spacing-|
E constantizado:
format (size)
[label(200)]
[label(labelWidth)]
O size pode ser explícito:
|-[button1(button2)]-[button2]-|
Ou referenciado:
Demo
Disponível em: https://github.com/CocoaHeadsBNU/VFL-sample
Conclusão
• Conceito simples de aprender
• Flexível
• Porém limitado (constantes, ratio e center)
Dúvidas?
Obrigado!
aleciogomes
Fontes/Further Reading
• https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/
AutolayoutPG/VisualFormatLanguage/VisualFormatLanguage.html
• http://commandshift.co.uk/blog/2013/01/31/visual-format-language-for-autolayout/
• http://code.tutsplus.com/tutorials/introduction-to-the-visual-format-language--cms-22715
(Swift)

Mais conteúdo relacionado

Destaque

Presentación tarea 5
Presentación tarea 5Presentación tarea 5
Presentación tarea 5Mary GoodDay
 
Teams based on pyramid of success 2013
Teams   based on pyramid of success 2013Teams   based on pyramid of success 2013
Teams based on pyramid of success 2013Ron McIntyre
 
RESUMEN LIBRO ASOECTOS A CONSIDERA PARA PROYECTOS
RESUMEN LIBRO ASOECTOS A CONSIDERA PARA PROYECTOSRESUMEN LIBRO ASOECTOS A CONSIDERA PARA PROYECTOS
RESUMEN LIBRO ASOECTOS A CONSIDERA PARA PROYECTOSEDGARMUJ
 
Análisis de los principales factores por los que las PYMES no se pueden desar...
Análisis de los principales factores por los que las PYMES no se pueden desar...Análisis de los principales factores por los que las PYMES no se pueden desar...
Análisis de los principales factores por los que las PYMES no se pueden desar...17elias
 
Lenguajes artísticos la pintura compilado 2013
Lenguajes artísticos la pintura compilado 2013Lenguajes artísticos la pintura compilado 2013
Lenguajes artísticos la pintura compilado 2013Martín Weimer
 
Instalaciones sanitarias nacho
Instalaciones sanitarias nachoInstalaciones sanitarias nacho
Instalaciones sanitarias nachoVanessa Michilot
 
Using Perl Stored Procedures for MariaDB
Using Perl Stored Procedures for MariaDBUsing Perl Stored Procedures for MariaDB
Using Perl Stored Procedures for MariaDBAntony T Curtis
 

Destaque (15)

Presentación tarea 5
Presentación tarea 5Presentación tarea 5
Presentación tarea 5
 
Proyecto de estudios sociales
Proyecto de estudios socialesProyecto de estudios sociales
Proyecto de estudios sociales
 
2012.2.lfg.parte geral01 (1)
2012.2.lfg.parte geral01 (1)2012.2.lfg.parte geral01 (1)
2012.2.lfg.parte geral01 (1)
 
Teams based on pyramid of success 2013
Teams   based on pyramid of success 2013Teams   based on pyramid of success 2013
Teams based on pyramid of success 2013
 
RESUMEN LIBRO ASOECTOS A CONSIDERA PARA PROYECTOS
RESUMEN LIBRO ASOECTOS A CONSIDERA PARA PROYECTOSRESUMEN LIBRO ASOECTOS A CONSIDERA PARA PROYECTOS
RESUMEN LIBRO ASOECTOS A CONSIDERA PARA PROYECTOS
 
Análisis de los principales factores por los que las PYMES no se pueden desar...
Análisis de los principales factores por los que las PYMES no se pueden desar...Análisis de los principales factores por los que las PYMES no se pueden desar...
Análisis de los principales factores por los que las PYMES no se pueden desar...
 
Rpp (saraf)
Rpp (saraf)Rpp (saraf)
Rpp (saraf)
 
Lenguajes artísticos la pintura compilado 2013
Lenguajes artísticos la pintura compilado 2013Lenguajes artísticos la pintura compilado 2013
Lenguajes artísticos la pintura compilado 2013
 
Tp pinturas.
Tp pinturas.Tp pinturas.
Tp pinturas.
 
Instalaciones sanitarias nacho
Instalaciones sanitarias nachoInstalaciones sanitarias nacho
Instalaciones sanitarias nacho
 
VTC Corporation Introduction
VTC Corporation IntroductionVTC Corporation Introduction
VTC Corporation Introduction
 
Using Perl Stored Procedures for MariaDB
Using Perl Stored Procedures for MariaDBUsing Perl Stored Procedures for MariaDB
Using Perl Stored Procedures for MariaDB
 
Lipidios
LipidiosLipidios
Lipidios
 
Reiki 3
Reiki 3Reiki 3
Reiki 3
 
Tomtat
TomtatTomtat
Tomtat
 

Simplificando Auto Layout via código