UIResponder is an abstract interface for responding to and handling events. For example, UIApplication, UIViewController and UIView objects are reponders.

UIView base class to show the content in a rectangular area on the screen.

UIControl is the base class for controls, i.e. views that can interact with user like UIButton.

UIViewController manages a view hierarchy in your app. Typically you will use multiple view controllers, each of which owns a portion of your app’s user interface.

UIImage represents image data of all kinds (don't confuse with UIImageView). You can use it

  • to assign to the UIImageView to display image
  • to customize system controls such as buttons, sliders, and segmented controls
  • to draw an image directly into a view or other graphics context
  • to pass an image to other APIs that might require image data

CGRect specifies rectangle. It holds origin (CGPoint) and size (CGSize) of rectangle. By default origin is located in the lower-left corner of the rectangle and the rectangle extends towards the upper-right corner. If the context has a flipped-coordinate space—often the case on iOS—the origin is in the upper-left corner and the rectangle extends towards the lower-right corner.

Most usefull controllers are:

  • UINavigationController implements a stack-based navigating
  • UIPageViewController manages navigation between pages of content, where a child view controller manages each page
  • UITableViewController allows to show table (list of items)

Most usefull views are:

  • UIButton - represents a button
  • UIImageView - displays a single image or a sequence of animated images
  • UILabel - displays one or more lines of text
  • UITextField - displays an editable text area, can be configured to input a plain text, emails, numbers, and so on
  • UITextView - displays a scrollable, multiline text region, can be used for editing also.
  • UITableView - data using rows in a single column