在iOS 11和12上,我想不出一种方法来使searchBar使用屏幕的整个宽度。
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)腾出空间
答案 0 :(得分:0)
您尝试过吗?
let width = UIScreen.main.bounds.size.width
searchBar.translatesAutoresizingMaskIntoConstraints = false
searchBar.widthAnchor.constraint(equalToConstant: width).isActive = true
搜索栏的宽度将始终等于设备屏幕的整个宽度。