我已经阅读了“iOS 5中的新功能”文档并且在那里说明了,现在可以更好地支持更改某些UI元素的背景。
我找不到iOS 5更改UIToolbar背景图片的正确方法。是否有一种特殊的新iOS 5方式?或者我是否仍然必须继承UIToolbar?
答案 0 :(得分:13)
是的,有一种新方法可以做到这一点。您可以使用appearance
使所有UIToolBar
具有相同的外观。
首先,您必须确保您的班级遵循UIAppearanceContainer
协议。在这里,我在我的app委托中完成了它:
@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
财产声明。
答案 1 :(得分:2)
这是一个很棒的教程:http://www.raywenderlich.com/4344/user-interface-customization-in-ios-5
基本上,它看起来像这样:
UIImage *gradientImage32 = [[UIImage imageNamed:@"surf_gradient_textured_32"]
resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
[[UINavigationBar appearance] setBackgroundImage:gradientImage32
forBarMetrics:UIBarMetricsDefault];