我想使用自定义后退按钮。在 iOS 6 中,一切都很完美,但是iOS 7
很奇怪。
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:[[UIImage imageNamed:@"back_button_normal"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 12.0, 0, 12.0)] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
首先,它没有 iOS 7 箭头,也没有背景图片。
(俄语语言环境)
然后,如果您按下按钮,就会出现背景图像。我还设置了背景图像UIControlStateHighlighted
状态,当您按住按钮时,也会出现突出显示的图像。按下任何后退按钮后,所有后退按钮都有背景图像。
但!如果您呈现模态视图控制器,请将其关闭,然后推送任何视图控制器 -iOS 7
每个后退按钮上都会出现箭头。
我用的是DP5。这是 UIKit 的错误吗?
PS我还尝试手动创建后退按钮,使用UIBarButtonItem
,为其设置背景图片,然后self.navigationItem.backBarButtonItem = barButtonItem;
没有帮助。
然后我尝试将背景图像设置为禁用状态并更改我的栏按钮项目的启用属性,也没有帮助。
这不是一个错误,这是如何Back button
在 iOS 7 中看起来。例如:
您可能应该在您的应用程序中使用新概念,而不是在 iOS 7 中为后退按钮设置背景图像。
如果您仍然希望后退按钮与 iOS6 中的外观相同,那么您可能应该手动创建这些后退按钮:
- (void)loadView
{
[super loadView];
UIButton *backButton = [[UIButton alloc] initWithFrame: CGRectMake(0, 0, 60.0f, 30.0f)];
UIImage *backImage = [[UIImage imageNamed:@"back_button_normal.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 12.0f, 0, 12.0f)];
[backButton setBackgroundImage:backImage forState:UIControlStateNormal];
[backButton setTitle:@"Back" forState:UIControlStateNormal];
[backButton addTarget:self action:@selector(popBack) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *backButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backButton];
self.navigationItem.leftBarButtonItem = backButtonItem;
}
-(void) popBack {
[self.navigationController popViewControllerAnimated:YES];
}
Edit: 不破坏滑动手势 (这是一个来源)
self.navigationController.interactivePopGestureRecognizer.delegate = (id<UIGestureRecognizerDelegate>)self;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)