0

我想更改我的 UIBarButtonItems 的背景图像。在根视图中,我希望它们成为导航栏中的某个背景图像(但仍然是圆角矩形按钮),但在下一个视图中,我有一个 UIToolBar,我希望它再次具有不同的背景。

[[UIBarButtonItem] appearance]在我的应用程序委托中使用了所有这些来更改它们,但我现在意识到对于一些人我想要一种风格,而对于另一些人来说我想要另一种风格。

更重要的是,我不仅想改变背景图像,还想改变一些形状。对于 UIToolBar 的 UIBarButtonItems 之一,我希望它在导航栏中呈后退按钮的形状。我将如何实现这种外观?

我可以用这里概述的方法实现这两个

基本上:我如何在整个应用程序中制作自定义 UIBarButtonItems,并有一些不同的形状?

4

2 回答 2

0

您可以使用 UIAppearance 协议http://developer.apple.com/library/ios/#documentation/uikit/reference/UIAppearance_Protocol/Reference/Reference.html中的“appearanceWhenContainedIn”方法

因此,对于工具栏,您将使用: [UIBarButtonItem appearanceWhenContainedIn:[UIToolbar class], nil]

对于导航栏: [UIBarButtonItem appearanceWhenContainedIn:[UINavigationController class], nil]

于 2013-04-29T08:21:31.830 回答
0

如果您希望按钮在不同的视图控制器中看起来不同,您应该在视图控制器中设置它们,而不是在委托中。在 init 方法或viewWillAppear:自定义按钮的方法中添加代码。如果您正在自定义项目,则使用与您提供的链接UIToolbar类似的代码。如果是导航栏,请执行以下操作:

UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
//Customise button with background etc that you want

UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithCustomView:btn];
self.navigationItem.leftBarButtonItem = item;
//Release item if you're not using ARC
于 2013-04-29T08:13:02.620 回答