Building UI is the hardest thing in iOS development. You might ask why? Just check out the different screen sizes, and device orientations. In this post I am going to list all the best tutorials and examples to help you understand UIKit components better.

First you should check out the official reference of Apple's UIKit framework. As you can see there are so many classes and other elements, but now I am going to focus only the main components.

If you want to start learning UIKit, it's a good thing to start with Apple's UIKitCatalog which contains Alert Cotroller, Pickers, Progress Views, Sliders, Text Fields, Web View and more. If you want even bigger collections of examples check out IOScreator's GitHub page with tons of tutorials, or shu223, who's been implementing new features with new iOS versions since many years.

The "main" components:

Provides a unified services interface for sharing and performing actions on data within an application.

Allows the appearance of views and controls to be consistently defined across the entire application.

Provide quick access to parts of your application directly from the device's home screen.

UICollectionView is very similar to UITableView but you can customize it a lot more and it can scroll horizontal, goodbye scroll views!

Implements common behavior for visual elements that convey a specific action or intention in response to user interactions.

Lets the user select documents or destinations outside your app’s sandbox.

Decouples the logic for recognizing a gesture and acting on that recognition.

Manages customizable, system-supplied user interfaces for taking pictures and movies on supported devices, and for choosing saved images and movies for use in your app.

Specifies a notification that an app can schedule for presentation at a specific date and time.

This singleton instance presents the menu interface for the Cut, Copy, Paste, Select, Select All, and Delete commands.

It’s a bar, typically displayed at the top of the screen, containing buttons for navigating within a hierarchy of screens.

Implements a specialized view controller that manages the navigation of hierarchical content.

Lets the user navigate between pages of content, where each page is managed by its own view controller object.

Uses a spinning-wheel to show one or more sets of values.

Used to manage the presentation of content in a popover.

A standard control that can be used to initiate the refreshing of a table view’s contents.

Support for displaying content that is larger than the size of the application’s window.

A container view controller that presents a master-detail interface.

This tab bar interface displays tabs at the bottom of the window for selecting between the different modes.

Tapping a tab bar item toggles the view above the tab bar.

UIKit provides a set of standard transition styles to use when presenting view controllers, and you can supplement the standard transitions with custom transitions of your own.

A table view displays and edits lists of information.

Gives you an easy way implement some complex visual effects.

Even if you know all the components, some day in your life you will need to google for some really stupid delegate or pattern. Finally here is a tool which is a "shortcut" to UIKit framework documentations. I hope this little article will help you to understand the basics about the components in this important framework.