UIAppearance
UIAppearance is a protocol in UIKit that enables theming and consistent styling across an iOS application by providing appearance proxies for UI classes. Introduced with iOS 5, it allows developers to configure the look of elements such as bars, buttons, and text attributes without subclassing or per-instance customization. The API exposes class methods like appearance and appearanceWhenContainedIn to obtain a proxy object. On the proxy, you can set properties that are marked as UI_APPEARANCE_SELECTOR, such as tintColor, barTintColor, backgroundImage, and titleTextAttributes. The settings propagate to all instances of the class in the current app, with the option to narrow scope by containment, so that a control inside a particular container uses a different appearance than one outside it.
Usage typically involves configuring the appearance early in the app lifecycle, often during application:didFinishLaunchingWithOptions, before creating
Limitations include that only properties marked for appearance can be customized this way; custom views must