Views and Controls

Present your content onscreen and define the interactions allowed with that content.


Views and controls are the visual building blocks of your app’s user interface. Use them to draw and organize your app’s content onscreen.

The screen for creating a reminder includes labels, switches, and many other kinds of views.

Views can host other views. Embedding one view inside another creates a containment relationship between the host view (known as the superview) and the embedded view (known as the subview). View hierarchies make it easier to manage views.

You can also use views to do any of the following:

  • Respond to touches and other events (either directly or in coordination with gesture recognizers).

  • Draw custom content using Core Graphics or UIKit classes.

  • Support drag and drop interactions.

  • Respond to focus changes.

  • Animate the size, position, and appearance attributes of the view.

UIView is the root class for all views and defines their common behavior. UIControl defines additional behaviors that are specific to buttons, switches, and other views designed for user interactions.

For additional information about how to use views and controls, see iOS Human Interface Guidelines. To see examples of UIKit controls, see UIKit Catalog: Creating and Customizing Views and Controls


View Fundamentals


An object that manages the content for a rectangular area on the screen.

UIKit Catalog: Creating and Customizing Views and Controls

Customize the user interface of your iOS apps and Mac apps built with Mac Catalyst by using views and controls in UIKit.

Container Views

Organize and present large data sets using container views.

Collection Views

Display nested views using a configurable and highly customizable layout.

Table Views

Display data in a single column of customizable rows.


A streamlined interface for laying out a collection of views in either a column or a row.


A view that allows the scrolling and zooming of its contained views.

Content Views


A view that shows that a task is in progress.


An object that displays a single image or a sequence of animated images in your interface.


A view that uses a spinning-wheel or slot-machine metaphor to show one or more sets of values.


A view that depicts the progress of a task over time.


A view that embeds web content in your app.



Gather input and respond to user interactions with controls.


The base class for controls, which are visual elements that convey a specific action or intention in response to user interactions.


A control that executes your custom code in response to user interactions.


A control used for the inputting of date and time values.


A control that displays a horizontal series of dots, each of which corresponds to a page in the app’s document or other data-model entity.


A horizontal control made of multiple segments, each segment functioning as a discrete button.


A control used to select a single value from a continuous range of values.


A control used to increment or decrement a value.


A control that offers a binary choice, such as On/Off.

Text Views

Display and edit text using text views.


A view that displays one or more lines of informational text.


An object that displays an editable text area in your interface.


A scrollable, multiline text region.

Drag and Drop Customization

Extend the standard drag and drop support for text views to include custom types of content.

Search Field


A view for displaying and editing text and search tokens.


Search criteria in a search text field, represented by text and an optional icon.


A method that supports cutting, copying, and dragging tokens from a search field.

Visual Effects


An initializer for visual effect views and blur and vibrancy effect objects.


An object that implements some complex visual effects.


An object that amplifies and adjusts the color of the content layered behind a visual effect view.


An object that applies a blurring effect to the content layered behind a visual effect view.


Manage the items displayed on navigation bars, tab bars, search bars, and tool bars.


An abstract superclass for items that can be added to a bar that appears at the bottom of the screen.


A button specialized for placement on a toolbar or tab bar.


A set of bar button items on the shortcuts bar above the keyboard on iPad.


Navigational controls displayed in a bar along the top of the screen, usually in conjunction with a navigation controller.


A specialized view for receiving search-related information from the user.


A control that displays one or more buttons along the bottom edge of your interface.


A control that displays one or more buttons in a tab bar for selecting between different subtasks, views, or modes in an app.


An item in a tab bar.


A set of methods for defining the ways that bars can be positioned in iOS apps.


A set of methods that support the positioning of a bar that conforms to the UIBarPositioning protocol.

Related Types


Defines a structure that specifies an amount to offset a position.


The inset distances for views.


Edge insets that take language direction into account.

See Also

User Interface

View Controllers

Manage your interface using view controllers and facilitate navigation around your app's content.

View Layout

Use stack views to lay out the views of your interface automatically. Use Auto Layout when you require precise placement of your views.

Appearance Customization

Add Dark Mode support to your app, customize the appearance of bars, and use appearance proxies to modify your UI.

Animation and Haptics

Provide feedback to users using view-based animations and haptics.

Windows and Screens

Provide a container for your view hierarchies and other content.