我已经在我的 navigation.titleView 中添加了一个搜索栏
self.navigationItem.titleView = searchBar
还有一个带有 title = ""的 BackBarButtonItem
self.navigationItem.backBarButtonItem?.title = ""
但是 Back Button
和 SearchBar
之间存在间隙,如下所示:
我认为这里出现间隙是因为 backBarButtonItem
的 title
有空间(因为我的 title
是 null ""但空间仍然那里)
所以我想问一下如何省略那个间隙?我想让我的 searchBar
更靠近我的 backBarIcon
非常感谢!
编辑 1: 我尝试更改 searchBar 的框架,但它不起作用
这是我的代码
//Change searchBar's frame
let titleViewFrame = (searchController.searchBar.frame)
searchController.searchBar.frame = CGRect(x: titleViewFrame.minX - 20.0, y: titleViewFrame.minY, width: titleViewFrame.width + 20.0, height: titleViewFrame.height)
最佳答案
override func viewDidLoad() {
super.viewDidLoad()
let container = UIView(frame: CGRect(x: 0, y: 0, width: 1000, height: 22))
let searchBar = UISearchBar()
searchBar.translatesAutoresizingMaskIntoConstraints = false
container.addSubview(searchBar)
let leftButtonWidth: CGFloat = 35 // left padding
let rightButtonWidth: CGFloat = 75 // right padding
let width = view.frame.width - leftButtonWidth - rightButtonWidth
let offset = (rightButtonWidth - leftButtonWidth) / 2
NSLayoutConstraint.activate([
searchBar.topAnchor.constraint(equalTo: container.topAnchor),
searchBar.bottomAnchor.constraint(equalTo: container.bottomAnchor),
searchBar.centerXAnchor.constraint(equalTo: container.centerXAnchor, constant: -offset),
searchBar.widthAnchor.constraint(equalToConstant: width)
])
self.navigationItem.titleView = container
}
关于ios - 如何更改导航栏中 titleView 的大小。因为在 navigationBar 的 titleView 和 backButton 之间有一个空隙,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42430430/