Skip to content

Instantly share code, notes, and snippets.

@fcanas
Last active August 29, 2015 14:03
Show Gist options
  • Select an option

  • Save fcanas/6fff80fbba9f889671cd to your computer and use it in GitHub Desktop.

Select an option

Save fcanas/6fff80fbba9f889671cd to your computer and use it in GitHub Desktop.
iOS Major UI Components Rundown and Resources
# Overview
Apple provides a good [introduction to view controllers](https://developer.apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/Introduction/Introduction.html#//apple_ref/doc/uid/TP40007457) that starts off very general and proceeds to highly technical. The introduction is probably worth reading for anyone interacting with iOS developers (_e.g._ designers and product managers. Next, I would look at a [catalog](https://developer.apple.com/library/ios/documentation/WindowsViews/Conceptual/ViewControllerCatalog/Introduction.html#//apple_ref/doc/uid/TP40011313) of the "container" view controllers they encourage you to use.
# Table Views
The [table view](https://developer.apple.com/library/ios/documentation/userexperience/conceptual/tableview_iphone/AboutTableViewsiPhone/AboutTableViewsiPhone.html) is one of the heaviest hitters in iOS. It's been around since the beginning, is dead-simple to use and is _highly_ customizable.
See also UITableViewCells
# Collection Views
Collection views are generalized table views. They can do all the same things but are more customizable. They still present an ordered set of customizable cells arranged in sections. They typically present information in a grid, but are much more powerful than that.
[Apple's Collection View Programming Guide](https://developer.apple.com/library/ios/documentation/WindowsViews/Conceptual/CollectionViewPGforIOS/Introduction/Introduction.html)
[NSHipster's introduction to collection views](http://nshipster.com/uicollectionview/)
[Key technical details in objc.io](http://www.objc.io/issue-3/collection-view-layouts.html)
[UIDynamics and Collection Views (again objc.io)](http://www.objc.io/issue-5/collection-views-and-uidynamics.html)
In some apps, what you may think is a table view may actually be a collection view because of the versatility it provides. For example, if you want to have section headers be "sticky" to both the top (as in a table view's section headers) and the bottom it's best to start with a collection view. Just a little bit of work gets the collection view emulating the behavior of a table view.
There may also be collections of items that don't remotely resemble a grid that are most easily made with a collection view. "Cover Flow" and Calendar views (the items are the appointments) are examples of what can be built with collection views.
See also
* UICollectionViewCell
* UICollection Supplementary Views (like headers and footers, but more generic)
* UICollectionViewLayout (usually a UICollectionViewFlowLayout)
# UINavigationController
If you're navigating through a hierarchy in iOS, you're probably using a navigation controller. It's everywhere: Settings, Mail, Photos. It's transitions don't have to be simple left-to-right, as shown in the Photos app.
[Apple Documentation for UINavigationController](https://developer.apple.com/library/ios/documentation/uikit/reference/UINavigationController_Class/Reference/Reference.html)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment