【发布时间】:2018-01-10 15:14:31
【问题描述】:
在 iOS 11 中,如果将 UISearchBar 设置为 navigationItem 的 titleView。然后将 UIBarButtonItem 添加/删除到 navigationItem.leftBarButtonItems。 UIBarButtonItem 将与 UISearchBar 重叠。
- 新建单视图 Xcode 项目
- 在 Storyboard 的 UINavigationController 中嵌入 ViewController
-
像这样修改 ViewController.swift
class ViewController: UIViewController { let button = UIBarButtonItem(barButtonSystemItem: .add, target: nil, action: nil) override func viewDidLoad() { super.viewDidLoad() let searchBar = UISearchBar() searchBar.searchBarStyle = .minimal navigationItem.titleView = searchBar } override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) { super.traitCollectionDidChange(previousTraitCollection) if traitCollection.horizontalSizeClass == .regular { navigationItem.leftBarButtonItem = button } else { navigationItem.leftBarButtonItem = nil } } }
环境:Xcode 9.2、iOS 11.2.2
我的问题是:UINavigationBar 有没有办法正确布局项目,或者我在这里做错了什么?谢谢!
【问题讨论】:
标签: ios uinavigationbar uisearchbar ios11 uibarbuttonitem