我有一个UINavigationController
我在其中提出了一些观点。里面viewDidLoad
对于这些视图之一,我想设置self.navigationItem.backBarButtonItem
到自定义视图(基于自定义图像)。我不知道为什么,但它似乎不起作用。相反,我得到了标准的“后退”按钮。
UIButton *backButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 63, 30)];
[backButton setImage:[UIImage imageNamed:@"back_OFF.png"] forState:UIControlStateNormal];
[backButton setImage:[UIImage imageNamed:@"back_ON.png"] forState:UIControlStateSelected];
UIBarButtonItem *backButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backButton];
self.navigationItem.backBarButtonItem = backButtonItem;
[backButtonItem release];
[backButton release];
我用标准标题进行了测试,效果很好。上面的代码有什么问题?
self.navigationItem.backBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"Prout" style:UIBarButtonItemStyleDone target:nil action:nil] autorelease];
感谢您对此的任何帮助。
从 iOS5 开始,我们有一个定制外观的绝佳新方式几乎所有使用的控件UI外观协议 http://developer.apple.com/library/ios/#documentation/uikit/reference/UIAppearance_Protocol/Reference/Reference.html, i.e. [UIBarButtonItem appearance]
。外观代理允许您对控件的外观进行应用程序范围的更改。下面是使用外观代理创建的自定义后退按钮的示例。
使用下面的示例代码创建一个后退按钮,其中包含正常和突出显示状态的自定义图像。从您的 appDelegate 调用以下方法application:didFinishLaunchingWithOptions:
- (void) customizeAppearance {
UIImage *i1 = [[UIImage imageNamed:@"custom_backButton_30px"]
resizableImageWithCapInsets:UIEdgeInsetsMake(0, 15, 0, 6)];
UIImage *i2 = [[UIImage imageNamed:@"custom_backButton_24px"]
resizableImageWithCapInsets:UIEdgeInsetsMake(0, 15, 0, 6)];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:i1
forState:UIControlStateNormal
barMetrics:UIBarMetricsDefault];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:i2
forState:UIControlStateNormal
barMetrics:UIBarMetricsLandscapePhone];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:i1
forState:UIControlStateHighlighted
barMetrics:UIBarMetricsDefault];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:i2
forState:UIControlStateHighlighted
barMetrics:UIBarMetricsLandscapePhone];
}
这只是一个简单的例子。通常,您希望为正常状态和突出显示(按下)状态提供单独的图像。
如果您有兴趣自定义其他控件的外观,可以在这里找到一些很好的示例:http://ios.biomsoft.com/2011/10/13/user-interface-customization-in-ios-5/ http://ios.biomsoft.com/2011/10/13/user-interface-customization-in-ios-5/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)