SlideShare a Scribd company logo
UISTACKVIEW
PROVIDES A STREAMLINED INTERFACE FOR LAYING OUT A COLLECTION OF VIEWS
IN EITHER A COLUMN OR A ROW.
DON’T NEED YOU !



I HAVE AUTOLAYOUT FOR THAT…
AUTOLAYOUT
AutoLayout !
Auto Layout dynamically calculates the size and
position of all the views in your view hierarchy,
based on constraints placed on those views
UISTACKVIEW
The Real AutoLayout
Stack views lets you leverage the power of
Auto Layout, creating user interfaces that can
dynamically adapt to the device’s orientation,
screen size, and any changes in the available
space.
INTRINSIC CONTENT SIZE ?????
BEFORE WE BEGIN…
CHCR PRIORITIES ???
INTRINSIC CONTENT SIZE
▸ The minimum space needed to express the full view
content without squeezing or clipping that data
https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/AutolayoutPG/
AnatomyofaConstraint.html#//apple_ref/doc/uid/TP40010853-CH9-SW21
CONTENT HUGGING, COMPRESSION RESISTANCE PRIORITY
https://littlebitesofcocoa.com/69-compression-resistance-content-hugging
(CHCR PRIORITIES)
ATTRIBUTES
▸ Axis
▸ Alignment
▸ Distribution
▸ Spacing
ALIGNMENT | DISTRIBUTION | SPACING
Source : https://developer.apple.com/reference/uikit/uistackview
AXIS
SPACING
ALIGNMENT : HORIZONTAL STACKVIEW
▸ Top
▸ Center
▸ Bottom
▸ Fill
ALIGNMENT : VERTICAL STACKVIEW
▸ Leading
▸ Center
▸ Trailing
▸ Fill
DISTRIBUTION (1/3)
▸ Fill
▸ Fill Equally
▸ Fill Proportionally 

(Test in code !)
▸ Equal Centering
▸ Equal Spacing
DISTRIBUTION (2/3)
▸ Fill
▸ Attempts to fill the space along the axis with the items.
▸ Sizes each item via its intrinsicContentSize.
▸ Uses each item’s contentCompressionResistancePriority and
contentHuggingPriority to determine which items to grow or shrink.
▸ contentCompressionResistancePriority – The view with the lowest
value gets truncated when there is not enough space to fit
everything’s intrinsicContentSize.
▸ contentHuggingPriority – The view with the lowest value gets
expanded beyond its intrinsicContentSize when there is leftover
space to fill.
DISTRIBUTION (3/3)
▸ Fill Equally : Resizes each item equally along the axis to fill the
available space. Also takes into account spacing between items.
▸ Fill Proportionally : Resizes each item by proportionally
distributing the extra space based on their intrinsicContentSize
along the axis.
▸ Equal Centering :Sizes each item based on its
intrinsicContentSize and spaces them all equally along the axis.
Uses spacing as a minimum value.
▸ Equal Spacing : Sizes each item based on its
intrinsicContentSize and spaces them all equally from each
others center along the axis. Uses spacing as a minimum value.
POSITIONING AND SIZING THE STACK VIEW
‣ You are responsible for defining the
position and (optionally) the size of the
stack view. The stack view then manages
the layout and size of its content.
GETTING HANDS DIRTY !
LET’S CODE !
XCode
Define the position only.
Define the stack’s size along its axis.
Define the stack’s size perpendicular to its
axis.
Define the size and position of the stack
view
https://developer.apple.com/reference/uikit/uistackview
COMMON UISTACKVIEW LAYOUTS
PROGRAMMATICALLY
UIView UIStackView
addSubview: addArrangedSubview:
insertSubview:atIndex: insertArrangedSubview:atIndex:
subviews arrangedSubviews
PECULIARITIES
▸ Non-rendering Subclass of UIView
▸ Be careful with removeArrangedSubview: method. (Avoid It)
▸ hidden property is animatable !
USEFUL LINKS : UISTACKVIEW
▸ https://www.raywenderlich.com/114552/uistackview-tutorial-
introducing-stack-views
▸ http://www.runtimecrash.com/2015/09/17/exploring-uistackview/
▸ https://developer.apple.com/reference/uikit/uistackview
▸ http://www.thinkandbuild.it/introduction-to-uistackview/
▸ https://www.raizlabs.com/dev/2016/04/uistackview/
▸ https://spin.atomicobject.com/2016/06/22/uistackview-distribution/
▸ http://angelolloqui.com/blog/36-Oddities-of-UIStackView
USEFUL LINKS : CHCR PRIORITIES
▸ https://littlebitesofcocoa.com/69-compression-resistance-content-hugging
▸ https://developer.apple.com/library/content/documentation/
UserExperience/Conceptual/AutolayoutPG/AnatomyofaConstraint.html#//
apple_ref/doc/uid/TP40010853-CH9-SW19
▸ https://krakendev.io/blog/autolayout-magic-like-harry-potter-but-real
▸ http://tuchangwei.github.io/2015/09/14/Cocoa-Autolayout-content-
hugging-vs-content-compression-resistance-priority/
▸ http://www.iosinsight.com/content-hugging-and-compression-resistance-
explained/
LASTLY, ON A COMPLETELY DIFFERENT NOTE,

ONE IMPORTANT THING…
▸ Don’t use custom views for navigation bar. It leads to
choppy UX !
▸ Use native Navigation bar only and customise if needed !
▸ http://www.appcoda.com/customize-navigation-status-
bar-ios-7/
▸ https://www.natashatherobot.com/navigation-bar-
interactions-ios8/

More Related Content

What's hot

Aws cloud watch
Aws cloud watchAws cloud watch
Aws cloud watch
Mahesh Raj
 
202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現
202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現
202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現
Amazon Web Services Japan
 
Deep Dive: AWS CloudFormation
Deep Dive: AWS CloudFormationDeep Dive: AWS CloudFormation
Deep Dive: AWS CloudFormation
Amazon Web Services
 
Responsive Web Design
Responsive Web DesignResponsive Web Design
Responsive Web Design
Vladimir Zhidal
 
AWS Black Belt Online Seminar Amazon Redshift
AWS Black Belt Online Seminar Amazon RedshiftAWS Black Belt Online Seminar Amazon Redshift
AWS Black Belt Online Seminar Amazon Redshift
Amazon Web Services Japan
 
CSS for Beginners
CSS for BeginnersCSS for Beginners
CSS for Beginners
Amit Kumar Singh
 
Introduction to EC2 (AWS)
Introduction to EC2 (AWS)Introduction to EC2 (AWS)
Introduction to EC2 (AWS)
NodeXperts
 
The Cloud and Amazon Web Services 2014 AWS
The Cloud and Amazon Web Services 2014 AWSThe Cloud and Amazon Web Services 2014 AWS
The Cloud and Amazon Web Services 2014 AWS
psrpatnaik
 
CSS3 Flex Layout
CSS3 Flex LayoutCSS3 Flex Layout
CSS3 Flex Layout
Neha Sharma
 
Amazon Route 53 - Webinar Presentation 9.16.2015
Amazon Route 53 - Webinar Presentation 9.16.2015Amazon Route 53 - Webinar Presentation 9.16.2015
Amazon Route 53 - Webinar Presentation 9.16.2015
Amazon Web Services
 
Access 2016 module 2 ppt presentation
Access 2016 module 2 ppt presentationAccess 2016 module 2 ppt presentation
Access 2016 module 2 ppt presentation
dgdotson
 
AWS 101: Introduction to AWS
AWS 101: Introduction to AWSAWS 101: Introduction to AWS
AWS 101: Introduction to AWS
Ian Massingham
 
AWS Black Belt Online Seminar 2016 AWS上でのファイルサーバ構築
AWS Black Belt Online Seminar 2016 AWS上でのファイルサーバ構築AWS Black Belt Online Seminar 2016 AWS上でのファイルサーバ構築
AWS Black Belt Online Seminar 2016 AWS上でのファイルサーバ構築
Amazon Web Services Japan
 
Infrastructure as Code in AWS using Cloudformation
Infrastructure as Code in AWS using CloudformationInfrastructure as Code in AWS using Cloudformation
Infrastructure as Code in AWS using Cloudformation
John Reilly Pospos
 
Amazon Redshift Masterclass
Amazon Redshift MasterclassAmazon Redshift Masterclass
Amazon Redshift Masterclass
Amazon Web Services
 
Amazon CloudWatch Tutorial | AWS Certification | Cloud Monitoring Tools | AWS...
Amazon CloudWatch Tutorial | AWS Certification | Cloud Monitoring Tools | AWS...Amazon CloudWatch Tutorial | AWS Certification | Cloud Monitoring Tools | AWS...
Amazon CloudWatch Tutorial | AWS Certification | Cloud Monitoring Tools | AWS...
Edureka!
 
AWS Service Catalog
AWS Service CatalogAWS Service Catalog
AWS Service Catalog
Amazon Web Services
 
No Hassle NoSQL - Amazon DynamoDB & Amazon DocumentDB | AWS Summit Tel Aviv ...
 No Hassle NoSQL - Amazon DynamoDB & Amazon DocumentDB | AWS Summit Tel Aviv ... No Hassle NoSQL - Amazon DynamoDB & Amazon DocumentDB | AWS Summit Tel Aviv ...
No Hassle NoSQL - Amazon DynamoDB & Amazon DocumentDB | AWS Summit Tel Aviv ...
Amazon Web Services
 
AWS CloudFormation Session
AWS CloudFormation SessionAWS CloudFormation Session
AWS CloudFormation Session
Kamal Maiti
 
CSS3 Media Queries
CSS3 Media QueriesCSS3 Media Queries
CSS3 Media Queries
Russ Weakley
 

What's hot (20)

Aws cloud watch
Aws cloud watchAws cloud watch
Aws cloud watch
 
202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現
202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現
202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現
 
Deep Dive: AWS CloudFormation
Deep Dive: AWS CloudFormationDeep Dive: AWS CloudFormation
Deep Dive: AWS CloudFormation
 
Responsive Web Design
Responsive Web DesignResponsive Web Design
Responsive Web Design
 
AWS Black Belt Online Seminar Amazon Redshift
AWS Black Belt Online Seminar Amazon RedshiftAWS Black Belt Online Seminar Amazon Redshift
AWS Black Belt Online Seminar Amazon Redshift
 
CSS for Beginners
CSS for BeginnersCSS for Beginners
CSS for Beginners
 
Introduction to EC2 (AWS)
Introduction to EC2 (AWS)Introduction to EC2 (AWS)
Introduction to EC2 (AWS)
 
The Cloud and Amazon Web Services 2014 AWS
The Cloud and Amazon Web Services 2014 AWSThe Cloud and Amazon Web Services 2014 AWS
The Cloud and Amazon Web Services 2014 AWS
 
CSS3 Flex Layout
CSS3 Flex LayoutCSS3 Flex Layout
CSS3 Flex Layout
 
Amazon Route 53 - Webinar Presentation 9.16.2015
Amazon Route 53 - Webinar Presentation 9.16.2015Amazon Route 53 - Webinar Presentation 9.16.2015
Amazon Route 53 - Webinar Presentation 9.16.2015
 
Access 2016 module 2 ppt presentation
Access 2016 module 2 ppt presentationAccess 2016 module 2 ppt presentation
Access 2016 module 2 ppt presentation
 
AWS 101: Introduction to AWS
AWS 101: Introduction to AWSAWS 101: Introduction to AWS
AWS 101: Introduction to AWS
 
AWS Black Belt Online Seminar 2016 AWS上でのファイルサーバ構築
AWS Black Belt Online Seminar 2016 AWS上でのファイルサーバ構築AWS Black Belt Online Seminar 2016 AWS上でのファイルサーバ構築
AWS Black Belt Online Seminar 2016 AWS上でのファイルサーバ構築
 
Infrastructure as Code in AWS using Cloudformation
Infrastructure as Code in AWS using CloudformationInfrastructure as Code in AWS using Cloudformation
Infrastructure as Code in AWS using Cloudformation
 
Amazon Redshift Masterclass
Amazon Redshift MasterclassAmazon Redshift Masterclass
Amazon Redshift Masterclass
 
Amazon CloudWatch Tutorial | AWS Certification | Cloud Monitoring Tools | AWS...
Amazon CloudWatch Tutorial | AWS Certification | Cloud Monitoring Tools | AWS...Amazon CloudWatch Tutorial | AWS Certification | Cloud Monitoring Tools | AWS...
Amazon CloudWatch Tutorial | AWS Certification | Cloud Monitoring Tools | AWS...
 
AWS Service Catalog
AWS Service CatalogAWS Service Catalog
AWS Service Catalog
 
No Hassle NoSQL - Amazon DynamoDB & Amazon DocumentDB | AWS Summit Tel Aviv ...
 No Hassle NoSQL - Amazon DynamoDB & Amazon DocumentDB | AWS Summit Tel Aviv ... No Hassle NoSQL - Amazon DynamoDB & Amazon DocumentDB | AWS Summit Tel Aviv ...
No Hassle NoSQL - Amazon DynamoDB & Amazon DocumentDB | AWS Summit Tel Aviv ...
 
AWS CloudFormation Session
AWS CloudFormation SessionAWS CloudFormation Session
AWS CloudFormation Session
 
CSS3 Media Queries
CSS3 Media QueriesCSS3 Media Queries
CSS3 Media Queries
 

Similar to UIStackView : More than an Introduction

UIStackView – Tom Bowden – Dec 2015 – Eventacular Inc
UIStackView – Tom Bowden – Dec 2015 – Eventacular IncUIStackView – Tom Bowden – Dec 2015 – Eventacular Inc
UIStackView – Tom Bowden – Dec 2015 – Eventacular Inc
Tom Bowden
 
Build tons of multi-device JavaScript applications - Part 2 : (black) Magic S...
Build tons of multi-device JavaScript applications - Part 2 : (black) Magic S...Build tons of multi-device JavaScript applications - Part 2 : (black) Magic S...
Build tons of multi-device JavaScript applications - Part 2 : (black) Magic S...
Skilld
 
Web Campaign 2.pptx
Web Campaign 2.pptxWeb Campaign 2.pptx
Web Campaign 2.pptx
MayankChadha14
 
Application Development - Overview on Android OS
Application Development - Overview on Android OSApplication Development - Overview on Android OS
Application Development - Overview on Android OS
Pankaj Maheshwari
 
Tk2323 lecture 2 ui
Tk2323 lecture 2   uiTk2323 lecture 2   ui
Tk2323 lecture 2 ui
MengChun Lam
 
Oracle adf performance tips
Oracle adf performance tipsOracle adf performance tips
Oracle adf performance tips
Vinay Kumar
 
Responsive Web Designs
Responsive Web DesignsResponsive Web Designs
Responsive Web Designs
Nusrat Khanom
 
Manual Layout Revisited
Manual Layout RevisitedManual Layout Revisited
Manual Layout Revisited
gillygize
 
Fewd week3 slides
Fewd week3 slidesFewd week3 slides
Fewd week3 slides
William Myers
 
Lecture 5 _ Building Layouts (1).pptx
Lecture 5 _ Building Layouts (1).pptxLecture 5 _ Building Layouts (1).pptx
Lecture 5 _ Building Layouts (1).pptx
ssuser0ee7de1
 
View groups containers
View groups containersView groups containers
View groups containers
Mani Selvaraj
 
Axure Basic Concepts
Axure Basic ConceptsAxure Basic Concepts
Axure Basic Concepts
Mauricio Candamil
 
[React Native] Lecture 4: Basic Elements and UI Layout by using FlexBox
[React Native] Lecture 4: Basic Elements and UI Layout by using FlexBox[React Native] Lecture 4: Basic Elements and UI Layout by using FlexBox
[React Native] Lecture 4: Basic Elements and UI Layout by using FlexBox
Kobkrit Viriyayudhakorn
 
Unlock the Power of Mui Breakpoints and Make Great Projects.pdf
Unlock the Power of Mui Breakpoints and Make Great Projects.pdfUnlock the Power of Mui Breakpoints and Make Great Projects.pdf
Unlock the Power of Mui Breakpoints and Make Great Projects.pdf
RonDosh
 
Responsive Web design _2013
Responsive Web design _2013 Responsive Web design _2013
Responsive Web design _2013
Suresh B
 
responsive web design 1_oct_2013
responsive web design  1_oct_2013 responsive web design  1_oct_2013
responsive web design 1_oct_2013
Suresh B
 
Rwd ppt
Rwd pptRwd ppt
Rwd ppt
Suresh B
 
responsive web design
responsive web designresponsive web design
responsive web design
Suresh B
 
Android Training (Android UI)
Android Training (Android UI)Android Training (Android UI)
Android Training (Android UI)
Khaled Anaqwa
 
W1_Lec01_Lec02_Layouts.pptx
W1_Lec01_Lec02_Layouts.pptxW1_Lec01_Lec02_Layouts.pptx
W1_Lec01_Lec02_Layouts.pptx
ssuserc1e786
 

Similar to UIStackView : More than an Introduction (20)

UIStackView – Tom Bowden – Dec 2015 – Eventacular Inc
UIStackView – Tom Bowden – Dec 2015 – Eventacular IncUIStackView – Tom Bowden – Dec 2015 – Eventacular Inc
UIStackView – Tom Bowden – Dec 2015 – Eventacular Inc
 
Build tons of multi-device JavaScript applications - Part 2 : (black) Magic S...
Build tons of multi-device JavaScript applications - Part 2 : (black) Magic S...Build tons of multi-device JavaScript applications - Part 2 : (black) Magic S...
Build tons of multi-device JavaScript applications - Part 2 : (black) Magic S...
 
Web Campaign 2.pptx
Web Campaign 2.pptxWeb Campaign 2.pptx
Web Campaign 2.pptx
 
Application Development - Overview on Android OS
Application Development - Overview on Android OSApplication Development - Overview on Android OS
Application Development - Overview on Android OS
 
Tk2323 lecture 2 ui
Tk2323 lecture 2   uiTk2323 lecture 2   ui
Tk2323 lecture 2 ui
 
Oracle adf performance tips
Oracle adf performance tipsOracle adf performance tips
Oracle adf performance tips
 
Responsive Web Designs
Responsive Web DesignsResponsive Web Designs
Responsive Web Designs
 
Manual Layout Revisited
Manual Layout RevisitedManual Layout Revisited
Manual Layout Revisited
 
Fewd week3 slides
Fewd week3 slidesFewd week3 slides
Fewd week3 slides
 
Lecture 5 _ Building Layouts (1).pptx
Lecture 5 _ Building Layouts (1).pptxLecture 5 _ Building Layouts (1).pptx
Lecture 5 _ Building Layouts (1).pptx
 
View groups containers
View groups containersView groups containers
View groups containers
 
Axure Basic Concepts
Axure Basic ConceptsAxure Basic Concepts
Axure Basic Concepts
 
[React Native] Lecture 4: Basic Elements and UI Layout by using FlexBox
[React Native] Lecture 4: Basic Elements and UI Layout by using FlexBox[React Native] Lecture 4: Basic Elements and UI Layout by using FlexBox
[React Native] Lecture 4: Basic Elements and UI Layout by using FlexBox
 
Unlock the Power of Mui Breakpoints and Make Great Projects.pdf
Unlock the Power of Mui Breakpoints and Make Great Projects.pdfUnlock the Power of Mui Breakpoints and Make Great Projects.pdf
Unlock the Power of Mui Breakpoints and Make Great Projects.pdf
 
Responsive Web design _2013
Responsive Web design _2013 Responsive Web design _2013
Responsive Web design _2013
 
responsive web design 1_oct_2013
responsive web design  1_oct_2013 responsive web design  1_oct_2013
responsive web design 1_oct_2013
 
Rwd ppt
Rwd pptRwd ppt
Rwd ppt
 
responsive web design
responsive web designresponsive web design
responsive web design
 
Android Training (Android UI)
Android Training (Android UI)Android Training (Android UI)
Android Training (Android UI)
 
W1_Lec01_Lec02_Layouts.pptx
W1_Lec01_Lec02_Layouts.pptxW1_Lec01_Lec02_Layouts.pptx
W1_Lec01_Lec02_Layouts.pptx
 

UIStackView : More than an Introduction

  • 1. UISTACKVIEW PROVIDES A STREAMLINED INTERFACE FOR LAYING OUT A COLLECTION OF VIEWS IN EITHER A COLUMN OR A ROW.
  • 2. DON’T NEED YOU !
 
 I HAVE AUTOLAYOUT FOR THAT…
  • 3. AUTOLAYOUT AutoLayout ! Auto Layout dynamically calculates the size and position of all the views in your view hierarchy, based on constraints placed on those views
  • 4. UISTACKVIEW The Real AutoLayout Stack views lets you leverage the power of Auto Layout, creating user interfaces that can dynamically adapt to the device’s orientation, screen size, and any changes in the available space.
  • 5. INTRINSIC CONTENT SIZE ????? BEFORE WE BEGIN… CHCR PRIORITIES ???
  • 6. INTRINSIC CONTENT SIZE ▸ The minimum space needed to express the full view content without squeezing or clipping that data https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/AutolayoutPG/ AnatomyofaConstraint.html#//apple_ref/doc/uid/TP40010853-CH9-SW21
  • 7. CONTENT HUGGING, COMPRESSION RESISTANCE PRIORITY https://littlebitesofcocoa.com/69-compression-resistance-content-hugging (CHCR PRIORITIES)
  • 8. ATTRIBUTES ▸ Axis ▸ Alignment ▸ Distribution ▸ Spacing
  • 9. ALIGNMENT | DISTRIBUTION | SPACING Source : https://developer.apple.com/reference/uikit/uistackview
  • 10. AXIS
  • 12. ALIGNMENT : HORIZONTAL STACKVIEW ▸ Top ▸ Center ▸ Bottom ▸ Fill
  • 13. ALIGNMENT : VERTICAL STACKVIEW ▸ Leading ▸ Center ▸ Trailing ▸ Fill
  • 14. DISTRIBUTION (1/3) ▸ Fill ▸ Fill Equally ▸ Fill Proportionally 
 (Test in code !) ▸ Equal Centering ▸ Equal Spacing
  • 15. DISTRIBUTION (2/3) ▸ Fill ▸ Attempts to fill the space along the axis with the items. ▸ Sizes each item via its intrinsicContentSize. ▸ Uses each item’s contentCompressionResistancePriority and contentHuggingPriority to determine which items to grow or shrink. ▸ contentCompressionResistancePriority – The view with the lowest value gets truncated when there is not enough space to fit everything’s intrinsicContentSize. ▸ contentHuggingPriority – The view with the lowest value gets expanded beyond its intrinsicContentSize when there is leftover space to fill.
  • 16. DISTRIBUTION (3/3) ▸ Fill Equally : Resizes each item equally along the axis to fill the available space. Also takes into account spacing between items. ▸ Fill Proportionally : Resizes each item by proportionally distributing the extra space based on their intrinsicContentSize along the axis. ▸ Equal Centering :Sizes each item based on its intrinsicContentSize and spaces them all equally along the axis. Uses spacing as a minimum value. ▸ Equal Spacing : Sizes each item based on its intrinsicContentSize and spaces them all equally from each others center along the axis. Uses spacing as a minimum value.
  • 17. POSITIONING AND SIZING THE STACK VIEW ‣ You are responsible for defining the position and (optionally) the size of the stack view. The stack view then manages the layout and size of its content.
  • 20. Define the position only. Define the stack’s size along its axis. Define the stack’s size perpendicular to its axis. Define the size and position of the stack view https://developer.apple.com/reference/uikit/uistackview COMMON UISTACKVIEW LAYOUTS
  • 21. PROGRAMMATICALLY UIView UIStackView addSubview: addArrangedSubview: insertSubview:atIndex: insertArrangedSubview:atIndex: subviews arrangedSubviews
  • 22. PECULIARITIES ▸ Non-rendering Subclass of UIView ▸ Be careful with removeArrangedSubview: method. (Avoid It) ▸ hidden property is animatable !
  • 23. USEFUL LINKS : UISTACKVIEW ▸ https://www.raywenderlich.com/114552/uistackview-tutorial- introducing-stack-views ▸ http://www.runtimecrash.com/2015/09/17/exploring-uistackview/ ▸ https://developer.apple.com/reference/uikit/uistackview ▸ http://www.thinkandbuild.it/introduction-to-uistackview/ ▸ https://www.raizlabs.com/dev/2016/04/uistackview/ ▸ https://spin.atomicobject.com/2016/06/22/uistackview-distribution/ ▸ http://angelolloqui.com/blog/36-Oddities-of-UIStackView
  • 24. USEFUL LINKS : CHCR PRIORITIES ▸ https://littlebitesofcocoa.com/69-compression-resistance-content-hugging ▸ https://developer.apple.com/library/content/documentation/ UserExperience/Conceptual/AutolayoutPG/AnatomyofaConstraint.html#// apple_ref/doc/uid/TP40010853-CH9-SW19 ▸ https://krakendev.io/blog/autolayout-magic-like-harry-potter-but-real ▸ http://tuchangwei.github.io/2015/09/14/Cocoa-Autolayout-content- hugging-vs-content-compression-resistance-priority/ ▸ http://www.iosinsight.com/content-hugging-and-compression-resistance- explained/
  • 25. LASTLY, ON A COMPLETELY DIFFERENT NOTE,
 ONE IMPORTANT THING… ▸ Don’t use custom views for navigation bar. It leads to choppy UX ! ▸ Use native Navigation bar only and customise if needed ! ▸ http://www.appcoda.com/customize-navigation-status- bar-ios-7/ ▸ https://www.natashatherobot.com/navigation-bar- interactions-ios8/