entendendo o básico de auto layout usando xcode 6
DESCRIPTION
Lightning talk sobre o básico de Auto Layout no XCode 6 no evento CocoaHeads RJ sediado no escritório do Hotel Urbano. Código dos exemplos: https://github.com/cytryn/AutoLayoutExample -- Lightning talk about the basics of Auto Layout on Xcode 6 at the CocoaHeads RJ event headquartered in the office of the Hotel Urbano. Examples found at: https://github.com/cytryn/AutoLayoutExampleTRANSCRIPT
![Page 1: Entendendo o básico de Auto Layout usando XCode 6](https://reader034.vdocuments.site/reader034/viewer/2022052307/559adbb41a28abab548b484b/html5/thumbnails/1.jpg)
André CytrynCo-‐fundador Saída Certa
@acytryn /andrecytryn/acytryn
![Page 2: Entendendo o básico de Auto Layout usando XCode 6](https://reader034.vdocuments.site/reader034/viewer/2022052307/559adbb41a28abab548b484b/html5/thumbnails/2.jpg)
Entendendo Auto Layout
• Possibilidades de layout;
• Gerando suas constraints;
• Resolvendo ambiguidades;
• Animando com Auto Layout.
![Page 3: Entendendo o básico de Auto Layout usando XCode 6](https://reader034.vdocuments.site/reader034/viewer/2022052307/559adbb41a28abab548b484b/html5/thumbnails/3.jpg)
Possibilidades de layout
![Page 4: Entendendo o básico de Auto Layout usando XCode 6](https://reader034.vdocuments.site/reader034/viewer/2022052307/559adbb41a28abab548b484b/html5/thumbnails/4.jpg)
• Código; • Xibs; • Storyboard; (recomendado)
![Page 5: Entendendo o básico de Auto Layout usando XCode 6](https://reader034.vdocuments.site/reader034/viewer/2022052307/559adbb41a28abab548b484b/html5/thumbnails/5.jpg)
Gerando suas constraints
![Page 6: Entendendo o básico de Auto Layout usando XCode 6](https://reader034.vdocuments.site/reader034/viewer/2022052307/559adbb41a28abab548b484b/html5/thumbnails/6.jpg)
• O Xcode deve ser capaz de calcular como uma equação;
• Existem prioridades; • Não tenha medo de criar muitas constraints.
![Page 7: Entendendo o básico de Auto Layout usando XCode 6](https://reader034.vdocuments.site/reader034/viewer/2022052307/559adbb41a28abab548b484b/html5/thumbnails/7.jpg)
Constraint to Margin
• Nova opção para iOS 8; • DeTinir uma constraint relativa a uma margem predeTinida em sua superview.
![Page 8: Entendendo o básico de Auto Layout usando XCode 6](https://reader034.vdocuments.site/reader034/viewer/2022052307/559adbb41a28abab548b484b/html5/thumbnails/8.jpg)
Resolvendo ambiguidades
![Page 9: Entendendo o básico de Auto Layout usando XCode 6](https://reader034.vdocuments.site/reader034/viewer/2022052307/559adbb41a28abab548b484b/html5/thumbnails/9.jpg)
• Frame; • Constraint.
Mais uma vez, matemática!
![Page 10: Entendendo o básico de Auto Layout usando XCode 6](https://reader034.vdocuments.site/reader034/viewer/2022052307/559adbb41a28abab548b484b/html5/thumbnails/10.jpg)
Animando com Auto Layout
![Page 11: Entendendo o básico de Auto Layout usando XCode 6](https://reader034.vdocuments.site/reader034/viewer/2022052307/559adbb41a28abab548b484b/html5/thumbnails/11.jpg)
Animando sem mudar
constraint
![Page 12: Entendendo o básico de Auto Layout usando XCode 6](https://reader034.vdocuments.site/reader034/viewer/2022052307/559adbb41a28abab548b484b/html5/thumbnails/12.jpg)
Animando mudando a constraint
![Page 13: Entendendo o básico de Auto Layout usando XCode 6](https://reader034.vdocuments.site/reader034/viewer/2022052307/559adbb41a28abab548b484b/html5/thumbnails/13.jpg)
@interface PlantZombieViewController : UIViewController
@property (nonatomic, weak) IBOutlet NSLayoutConstraint *plantTopConstraint;
@property (nonatomic, weak) IBOutlet UIImageView *plantImageView;
@end
@implementation PlantZombieViewController
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. }
- (IBAction)smashButtonTapped:(UIButton *)button { if (self.plantTopConstraint.constant == 0) { button.titleLabel.text = @"SMASH"; [UIView animateWithDuration:1.0 animations:^{ self.plantTopConstraint.constant = self.view.frame.size.height - self.plantImageView.frame.size.height; [self.view layoutIfNeeded]; }]; } else { button.titleLabel.text = @"RESET"; self.plantTopConstraint.constant = 0; } }
- (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. }
@end
![Page 15: Entendendo o básico de Auto Layout usando XCode 6](https://reader034.vdocuments.site/reader034/viewer/2022052307/559adbb41a28abab548b484b/html5/thumbnails/15.jpg)
Obrigado!
Dúvidas?
@acytryn /andrecytryn/acytryn