Да, есть новый способ сделать это. Вы можете использовать appearance
, чтобы все UIToolBar
выглядели одинаково.
Во-первых, вы должны убедиться, что ваш класс следует протоколу UIAppearanceContainer
. Здесь я сделал это в моем делегате приложения:
@interface AppDelegate : UIResponder <UIApplicationDelegate, UIAppearanceContainer>
@property (strong, nonatomic) UIWindow *window;
@end
Затем вы можете установить внешний вид, например, application:didFinishLaunchingWithOptions:
или viewDidLoad
. Как это:
UIImage *image = [UIImage imageNamed:@"myimage.png"];
[[UIToolbar appearance] setBackgroundImage:image forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsDefault];
Вам нужно сделать это только один раз, чтобы получить одинаковый внешний вид для всех UIToolBar
в вашем приложении. Вы также можете установить многие (если не все?) Свойства вашего UIToolBar
.
Как примечание, есть много классов, которые могут следовать протоколу UIAppearanceContainer
. Чтобы выяснить, что можно настроить с помощью протокола внешнего вида, вы можете открыть файл заголовка класса, который вы хотите настроить. Если вы можете установить свойство с помощью UIAppearance
, то после объявления свойства будет записано UI_APPEARANCE_SELECTOR
.