The UIKit framework wraps all the APIs used to build the interfaces of iOS. They are organized in unique boxes that represent a specific User Interface control like switches, buttons etc. These boxes are referred to as classes in object-oriented programming. For each class, some properties are used to change its behavior and appearance. These properties also expose different functions to interact with them; these functions are known as methods. For example: The UISwitch class is a representation of the toggle control in iOS apps. The tint color can be changed through its property named tintColor, and toggle the on/off nature by using the method setOn(…). All UIKit classes start with the “UI” which makes them easy to be identified by a code.
When you are familiar with the programming concepts like methods and classes, you can change the behavior or even the appearance of your views through code. You don’t need to have a thorough understanding of these concepts for you to apply them; you can now have a clue on how things work in the background.
You may want to use a drawing canvas or a subview container in a blank view. But in this case, Apple offers a base class where the rest of the classes can inherit from, but it does not do much by itself: UIView.
Now, let’s look at inheritance. If a class becomes a subclass of another class, it inherits the methods and properties of the class. This is when a parent class becomes a superclass. For example, the UISwitch we talked about earlier is a subclass of the UIView. So, you can access and change the switch control’s property because UIView, which is its superclass, defines it.
Sub-classing UIView or its subclass is required in custom interfaces like when building UIViews in Swift. Additionally, when looking for a specific method or property in a view class, it is essential to look at the superclasses and in the “Inherits From” part in the documentation page.
To make it clear, everything you see on the screen of an iOS device is a view. Switches, images, and buttons are views. A class represents a view, and it should know how to draw itself on a screen. Most views showcase their properties to other app features for their content to be updated to represent the state of the app.
The same way HTML elements operate, views are also nested within each other. But they are different from HTML elements because they don’t inherit their appearance from their parents. For example, they don’t inherit the tintColor which is the property that gives color to the elements. A parent view is also known as a superview, while the child view is known as a subview. You can nest as many views as you can, but it is wise to limit it for performance reasons. It is important to know that parent views lay out their subviews, but they do not draw them. As a developer, you will organize your UI respective to your hierarchy of views to make it easy to style and reuse them later on.