如何使navigationItem.searchController的搜索栏使用屏幕的整个宽度

问题描述 投票:0回答:1

在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)

ios uisearchbar uisearchcontroller uinavigationitem
1个回答
0
投票

您是否尝试过这个?

        let width = UIScreen.main.bounds.size.width
        searchBar.translatesAutoresizingMaskIntoConstraints = false
        searchBar.widthAnchor.constraint(equalToConstant: width).isActive = true

在这里,搜索栏的宽度将始终等于设备的屏幕的整个宽度。

© www.soinside.com 2019 - 2024. All rights reserved.