iOS5改变了UIToolbar的背景

Mad*_*APP 2 background-image uitoolbar ios

我已经阅读了"iOS 5中的新功能"文档,并指出,现在可以更好地支持更改某些UI元素的背景.

我无法找到iOS 5更改UIToolbar背景图像的正确方法.是否有一种特殊的新iOS 5方式?或者我仍然必须继承UIToolbar?

mat*_*tsr 13

是的,有一种新方法可以做到这一点.您可以使用它appearance来使所有UIToolBars具有相同的外观.

首先,您必须确保您的类遵循UIAppearanceContainer协议.在这里,我在我的app委托中完成了它:

@interface AppDelegate : UIResponder <UIApplicationDelegate, UIAppearanceContainer>

@property (strong, nonatomic) UIWindow *window;

@end
Run Code Online (Sandbox Code Playgroud)

然后,您可以设置外观,例如,application:didFinishLaunchingWithOptions:viewDidLoad.像这样:

UIImage *image = [UIImage imageNamed:@"myimage.png"];
[[UIToolbar appearance] setBackgroundImage:image forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsDefault];
Run Code Online (Sandbox Code Playgroud)

您只需执行此操作即可为UIToolBar应用中的所有内容获得相同的外观.您还可以设置许多(如果不是全部?)您的属性UIToolBar.

作为旁注,有许多类可以遵循UIAppearanceContainer协议.要找出可以使用外观协议自定义的内容,可以打开要自定义的类的头文件,如果可以设置属性UIAppearance,则属性已UI_APPEARANCE_SELECTOR写在属性声明后面.