objective-c - 没有标题的setBack按钮背景图像IOS5

标签 objective-c xcode ios5 user-interface uiappearance

我试图获得一个没有标题的后退按钮,但我无法让它工作。我真的是 objective-c 的新手......

UIImage *backButtonImage = [[UIImage imageNamed:@"back.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 30, 50)];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButtonImage
                                                  forState:UIControlStateNormal
                                                barMetrics:UIBarMetricsDefault];

有了这段代码,我就有了后退按钮,还有上一页的标题。

我找到了一些使用类 UIViewController 的工作示例,但在我的例子中,代码在 appDelegate.m 文件中。

知道如何让它发挥作用吗?

最佳答案

我改编的一个非常简单的 hack 使用 iOS 5 外观代理如下(不用说,代理的好处是所有导航栏的全局更改):

[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(-400.f, 0)
                                                     forBarMetrics:UIBarMetricsDefault];

此方法在 iOS 5 SDK 中可用,所以不用担心。


编辑

为了避免图像拉伸(stretch),请使用以下内容:

UIImage* image = [UIImage imageNamed:@"back"];
return [image resizableImageWithCapInsets:UIEdgeInsetsMake(0, image.size.width, 0, 0)];

关于objective-c - 没有标题的setBack按钮背景图像IOS5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12830782/

相关文章:

ios - 如何在没有 IB 的情况下控制对象的自动调整大小?

objective-c - UITableView 滚动时中断?

ios - 继承 UIImageView 并添加 UIControl

iphone - 在 Interface Builder 中连接时出现奇怪的错误

swift - Left Bar Button Item - 显示上一个 View Controller 的名称

ios - 为什么 iOS 应用程序包中的 PNG 图像比我的项目中的大?

ios - 单击TextView中的链接时如何防止默认浏览器打开?

objective-c - 注释太小 iOS

ios - 在 AVSpeechSynthesizer 话语中强制暂停的简单方法?

ios - 如果我有两个实现协议(protocol)的 View Controller ,我如何指定哪个是我的第三个 Controller 的委托(delegate)?