Objective c 在触摸“后退”按钮之前,它的背景图像不会出现
我在后退按钮背景图像的Objective c 在触摸“后退”按钮之前,它的背景图像不会出现,objective-c,uinavigationbar,ios7,Objective C,Uinavigationbar,Ios7,我在后退按钮背景图像的[uibarbuttonite外观]中遇到一些问题 正常情况下(iOS 5和iOS 6),我可以像这样设置后退按钮的背景图像: [[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButtonImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; 但在iOS 7上,背景图像不会出现在后退按钮上。奇怪的是,当按下后退按钮
[uibarbuttonite外观]
中遇到一些问题
正常情况下(iOS 5和iOS 6),我可以像这样设置后退按钮的背景图像:
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButtonImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
但在iOS 7上,背景图像不会出现在后退按钮上。奇怪的是,当按下后退按钮一次时,背景图像就会出现
我尝试过为所有状态设置映像,以测试iOS7是否为未触及的后退按钮使用了某种新状态,但情况似乎并非如此
你知道我做错了什么吗?试着改变按钮的色调。iOS 7中的UIBarButton出现了一些问题我搜索了这个问题,发现并不是只有你有同样的问题。还有许多人在
ui外观方面面临同样的问题。以下是(向客户解释您的)证据:
在这种情况下,您可以按照第二个链接中提供的答案进行操作
您可以将UINavigationBar
上的backindicationmage
属性设置为自定义图像,也可以通过设置UINavigationBar
上的tintColor
属性来更改backindicationmage
的颜色
您可以创建自定义的uiBarButtonim
并手动将其指定为UINavigationItem
的LeftBarButtonim
我实现了一个在ios5+下工作的非常好的解决方案,如下所示:
一个能使背景在iOS7上正确显示的解决方案位于。它使用了一种方法来修复苹果的bug(即当背景图像改变时,他们忘记在私有视图上调用setNeedsDisplay)。如果可能的话,使用无边界可能更好,但swizzling确实有效。要使用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
}
你能为索赔提供一些证据吗?我有同样的问题,我必须向客户解释。这就是为什么我要问你:)首先你自己试试ti,如果它有效,你也可以向客户解释它。有可能用swizzled方法修复显示故障;请参阅我的回复。但其他一些选择可能更可取。不幸的是,我也面临着同样的问题。你有什么解决办法吗?没有。我必须创建一个自定义后退按钮作为ui按钮
,并将其设置为leftBarButtonItem
,以解决此问题:-(