iOS 11 leftBarButtonItem/rightBarButtonItem 位置错误

iOS 11 leftBarButtonItem/rightBarButtonItem location bug

我发现 UINavigationBar.height = 56 在 iOS11UINavigationBar.height = 44 低于 iOS 11.

我的代码在这里:

UIBarButtonItem *scanButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"scan_code"] style:UIBarButtonItemStylePlain target:self action:@selector(pushScanController)];
self.navigationItem.leftBarButtonItem = scanButton;

iOS11 中存在位置错误。

如图:

我该如何修复这个错误?

看来您的问题是由搜索栏变大而不是按钮中的内容引起的。

您可能想尝试以下操作:

if #available(iOS 11.0, *) {
    [[self.yourSearchBar.heightAnchor constraintEqualToConstant:44.0] setActive:YES]
}

或调查并实施 iOS 11 项搜索栏更改。