在iOS上11和12,我不能想出一个办法,使搜索栏使用屏幕的整个宽度。
navigationItem.searchController = searchController
我可以添加使用更多的保证金:
let sb = searchController.searchBar
let selector = #selector(setter: UIScrollView.contentInset)
if sb.responds(to: selector) {
sb.perform(selector, with: UIEdgeInsets(top: 5, left: 0, bottom: 5, right: 35))
}
如果我尝试左边和右边设置为0 ...它只是使用的默认布局。
编辑:
越来越近:
for tf in sb.subviews.first!.subviews where tf is UITextField {
tf.translatesAutoresizingMaskIntoConstraints = false
tf.widthAnchor.constraint(equalToConstant: width).isActive = true
tf.layoutIfNeeded()
}
现在我试图找出一种方法来应用约束,这样,当文本字段处于活动状态,它将使该取消按钮空间(UINavigationButton)
您是否尝试过这个?
let width = UIScreen.main.bounds.size.width
searchBar.translatesAutoresizingMaskIntoConstraints = false
searchBar.widthAnchor.constraint(equalToConstant: width).isActive = true
在这里,搜索栏的宽度将始终等于设备的屏幕的整个宽度。