Skip Navigation
Framework

UIKit

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

Overview

UIKit provides a variety of features for building apps, including components you can use to construct the core infrastructure of your iOS, iPadOS, or tvOS apps. The framework provides the window and view architecture for implementing your UI, the event-handling infrastructure for delivering Multi-Touch and other types of input to your app, and the main run loop for managing interactions between the user, the system, and your app.

Image of an iPhone and iPad running apps that showcase UIKit user interface elements. The iPhone is running a sample app that shows a color picker and a navigation bar. The iPad is running a sample app that shows a split-view interface with an outline view, a list of recipes, and a detail view with information about a specific recipe.

UIKit also includes support for animations, documents, drawing and printing, text management and display, search, app extensions, resource management, and getting information about the current device. You can also customize accessibility support, and localize your app’s interface for different languages, countries, or cultural regions.

UIKit works seamlessly with the SwiftUI framework, so you can implement parts of your UIKit app in SwiftUI or mix interface elements between the two frameworks. For example, you can place UIKit views and view controllers inside SwiftUI views, and vice versa.

To build a macOS app, you can use SwiftUI to create an app that works across all of Apple’s platforms, or use AppKit to create an app for Mac only. Alternatively, you can bring your UIKit iPad app to the Mac with Mac Catalyst.

Topics

UIKit manages your app’s interactions with the system and provides classes for you to manage your app’s data and resources.
Views help you display content onscreen and facilitate user interactions; view controllers help you manage views and the structure of your interface.
Responders and gesture recognizers help you handle touches and other events. Drag and drop, focus, peek and pop, and accessibility handle other user interactions.
UIKit provides classes and protocols that help you configure your drawing environment and render your content.
In addition to text views that simplify displaying text in your app, UIKit provides custom text management and rendering that supports the system keyboards.
Avoid using deprecated classes and protocols in your apps.
Current page is UIKit