Views and Controls

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


First Steps

class UIView

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

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.

class UIStackView

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

class UIScrollView

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

Content Views

class UIActivityIndicatorView

A view that shows that a task is in progress.

class UIImageView

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

class UIPickerView

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

class UIProgressView

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

class UIWebView

A view that embeds web content in your app.


class UIControl

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

class UIButton

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

class UIDatePicker

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

class UIPageControl

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.

class UISegmentedControl

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

class UISlider

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

class UIStepper

A control used to increment or decrement a value.

class UISwitch

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

Text Views

class UILabel

A view that displays one or more lines of read-only text, often used in conjunction with controls to describe their intended purpose.

class UITextField

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

class UITextView

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.


class UIBarItem

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

class UIBarButtonItem

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

class UIBarButtonItemGroup

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

class UINavigationBar

A control that supports navigation of hierarchical content, most often used in navigation controllers.

class UISearchBar

A text field–like control that supports text-based searches.

class UIToolbar

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

class UITabBar

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

class UITabBarItem

An item in a tab bar.

protocol UIBarPositioning

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

protocol UIBarPositioningDelegate

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


class UIMenuController

The menu interface for the Cut, Copy, Paste, Select, Select All, and Delete commands.

class UIMenuItem

A custom item in the editing menu managed by the UIMenuController object.

Visual Adornments

class UIVisualEffect

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

class UIVisualEffectView

An object that implements some complex visual effects.

class UIVibrancyEffect

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

class UIBlurEffect

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

Appearance Customization

protocol UIAppearance

A collection of methods that gives you access to the appearance proxy for a class.

protocol UIAppearanceContainer

A protocol that a class must adopt to allow appearance customization using the UIAppearance API.

Related Types

struct UIEdgeInsets

The inset distances for views.

struct NSDirectionalEdgeInsets

Edge insets that take language direction into account.

struct UIOffset

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

See Also

User Interface

View Management

Manage your interface using view controllers and facilitate navigation around different screens of content.

System View Controllers

Use the built-in UIKit view controllers to pick images, edit videos, share content, print files, and much more.

Drag and Drop

Bring drag and drop to your app by using interaction APIs with your views.


Make your app more accessible to users with disabilities.

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.

Beta Software

This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software.

Learn more about using Apple's beta software