Framework

UIKit

Construct and manage a graphical, event-driven user interface for your iOS or tvOS app.

Overview

The UIKit framework provides the required infrastructure for your iOS or tvOS apps. It provides the window and view architecture for implementing your interface, the event handling infrastructure for delivering Multi-Touch and other types of input to your app, and the main run loop needed to manage interactions among the user, the system, and your app. Other features offered by the framework include animation support, document support, drawing and printing support, information about the current device, text management and display, search support, accessibility support, app extension support, and resource management.

Topics

Essentials

About App Development with UIKit

Learn about the basic support that UIKit and Xcode provide for your iOS and tvOS apps.

Protecting the User’s Privacy

Secure personal data, and respect user preferences for how data is used.

App Structure

UIKit manages your app's interactions with the system and provides classes for you to manage your app's data and resources.

App and Environment

Manage life-cycle events and your app’s UI scenes, and get information about traits and the environment in which your app runs.

Documents, Data, and Pasteboard

Organize your app's data and share that data on the pasteboard.

Resource Management

Manage the images, strings, storyboards, and nib files that you use to implement your app's interface.

App Extensions

Extend your app's basic functionality to other parts of the system.

Inter-Process Communication

Share data through Handoff, support universal links into your app's content, and display activity-based services to the user.

User Interface

Views help you display content onscreen and facilitate user interactions; view controllers help you manage views and the structure of your interface.

Views and Controls

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

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.

User Interactions

Responders and gesture recognizers help you handle touches, keyboard input, and other events. Use drag and drop, focus, peek and pop, and accessibility to handle other types of user interactions with your content.

Touches, Presses, and Gestures

Encapsulate your app's event-handling logic in gesture recognizers so that you can reuse that code throughout your app.

Drag and Drop

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

Pencil Interactions

Handle double-tap interactions that a user makes on Apple Pencil.

Focus-based Navigation

Navigate the interface of your UIKit app using a remote or game controller.

Menus and Shortcuts

Simplify interactions with your app by using menu systems, contextual menus, Home screen quick actions, and keyboard shortcuts.

Accessibility

Make your apps accessible to everyone, including people with disabilities.

Platforms

Creating a Mac Version of Your iPad App

Bring your iPad app to macOS with Mac Catalyst.

Graphics, Drawing, and Printing

UIKit provides classes and protocols that help you configure your drawing environment and render your content.

Images and PDF

Create and manage images, including those that use bitmap and PDF formats.

Drawing

Configure your app's drawing environment using colors, renderers, draw paths, strings, and shadows.

Printing

Display the system print panels and manage the printing process.

Text

In addition to text views that make it easy to display text in your app, UIKit provides custom text management and rendering that supports the system keyboards.

Text Display and Fonts

Use UIKit views to display text, manage fonts, and check spelling.

Text Storage

Manage text storage, and coordinate the layout of text.

Keyboards and Input

Configure the system keyboard, or create your own keyboards and handle input yourself.

Deprecated

Avoid using deprecated classes and protocols in your apps.

Deprecated Symbols

Review symbols that are no longer supported, and find the replacements to use instead.

Protocols

protocol UIViewControllerPreviewing

A set of methods that define the interface for configuring a previewing view controller on devices that support 3D Touch.

protocol UIViewControllerPreviewingDelegate

A set of methods used by the delegate to respond, with a preview view controller and a commit view controller, to the user pressing a view object on the screen of a device that supports 3D Touch.

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