iOS11 navigationBar上的按钮显示不正常

iOS 11之前的导航栏是这个样的

clipboard.png

iOS 11是这个样子的
clipboard.png

item莫名变大。
无从下手。

阅读 5.6k
3 个回答

最好用 iOS 推荐的方式创建这些按钮, 我这边用下面的方法创建的按钮没有出现问题.

UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"returnIcon"]
                                                                 style:UIBarButtonItemStyleDone
                                                                target:self
                                                                action:@selector(baseReturnAction)];
        item.tintColor = [UIColor whiteColor];
        viewController.navigationItem.leftBarButtonItem = item;

强制设置item的frame试试,例如修改到60x60

[[UIBarButtonItem alloc]initWithCustomView:_xxxButton]; //没记错应该是这样写
[_xxxButton setFrame:CGRectMake(0,0,60,60)];

ps 导航条item最后显示的origin与设置的origin没有直接联系,但是size会有关联

过了好几天,忘了来选正确答案了。
我后来发现这个原因其实很奇葩,如果你把button放进view里边然后再用UIBarButtonItem的初始化方法就不会用问题。具体原因我也没有搞清楚,但是问题目前是解决了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏