我遇到了[UIBarButtonItem appearance]
后退按钮背景图片的一些问题。
通常(iOS 5和iOS 6)我能够像这样设置后退按钮的背景图像:
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButtonImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
但在iOS 7中,背景图像不会出现在后退按钮上。奇怪的是,当触摸后退按钮一次时,背景图像实际出现。
我已尝试为所有状态设置图像,以测试iOS 7是否使用某种新状态作为未触摸的后退按钮,但情况似乎并非如此。
你有什么想法,我做错了什么?
答案 0 :(得分:1)
我搜索了这个问题,发现你并不是唯一一个遇到同样问题的人。还有许多其他人与UIAppearance
面临同样的问题。这些是证明(向您的客户解释):
在这种情况下,您可以执行第二个链接中提供的答案。
您可以将backIndicatorImage
上的UINavigationBar
属性设置为自定义图片,也可以通过在{{1}上设置backIndicatorImage
属性来更改tintColor
的颜色}}
您可以创建自定义UINavigationBar
并手动将其指定为UIBarButtonItem
的{{1}}。
答案 1 :(得分:1)
在iOS7上正确显示背景的解决方案是OS 7 custom back button。它调整了修复Apple bug的方法(这是他们忘记在更改背景图像时在私有视图上调用setNeedsDisplay)。如果可能的话,走向无边界可能会更好,但是调整可行。
答案 2 :(得分:0)
尝试更改按钮的色调颜色。 iOS 7中存在UIBarButton
的问题答案 3 :(得分:0)
我在ios5 +下实现了一个非常好的解决方案:
答案 4 :(得分:0)
要使用ios7,您需要使用
UIImage *backButton = [[UIImage imageNamed:@"icon_back" resizableImageWithCapInsets:UIEdgeInsetsZero];
if ([UINavigationBar instancesRespondToSelector:@selector(setBackIndicatorImage:)]) {
[[UINavigationBar appearance] setBackIndicatorImage:backButton];
[[UINavigationBar appearance] setBackIndicatorTransitionMaskImage:backButton];
}else{
//ios 5 and 6 code
}