当swift4中的搜索栏中有文本时,如何使tableview不显眼

时间:2018-05-21 07:41:08

标签: uitableview swift4 uisearchcontroller

我在tableview控制器中有搜索控制器,代码如下

let searchController = UISearchController(searchResultsController: nil)

override func viewDidLoad() {
    super.viewDidLoad()

    ///// color of letter in search index ////
    self.tableView.sectionIndexColor = UIColor.black
    self.searchController.searchBar.delegate = self
    //////////// search Controller //////////////
    self.searchController.searchResultsUpdater = self
    //self.searchController.obscuresBackgroundDuringPresentation = true
    self.searchController.searchBar.placeholder = "Search Countries"
    self.navigationItem.searchController = searchController
    definesPresentationContext = true
    self.searchController.obscuresBackgroundDuringPresentation = true
    self.navigationItem.hidesSearchBarWhenScrolling = false



}

当我搜索搜索栏时,背景中的项目(国家/地区列表)处于非活动状态,如图所示,这很好 enter image description here

我想要做的是在搜索栏中有文字后,让背景中的项目处于活动状态。我尝试了以下代码,但它不起作用

func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String)
 {
        if (searchText.count>0)
        {
            self.searchController.obscuresBackgroundDuringPresentation = false
        }
 }

我的视图控制器符合UISearchBarDelegate和UISearchResultsUpdating的信息

1 个答案:

答案 0 :(得分:0)

Apple doc:

  

此属性(obscuresBackgroundDuringPresentation)仅限控件   原始视图控制器是否最初模糊。

Apple的建议:

  

如果使用相同的视图控制器来显示可搜索的内容   和搜索结果,建议您将此属性设置为   的即可。此属性的默认值为true。

您可以使用tableview的 isUserInteractionEnabled 属性,在用户输入内容后启用它。