簡體   English   中英

UISearchController中的“取消”按鈕導致SearchBar出現故障

[英]Cancel Button in UISearchController Causes SearchBar Glitch

viewDidload ,我將實例化UISearchController並將其搜索欄添加到表視圖的標題視圖中,這是標准過程。

如果我點擊搜索欄並輸入一些文本,則會顯示結果,並且我在此處取消搜索,沒問題。

相反,如果我選擇結果行之一,則推入下一個屏幕,然后彈出並在此處取消,則搜索欄會出現故障。

這是我的searchController:

// MARK : SearchController ! //

    var searchController : UISearchController!

    var resultsController = UITableViewController()

    ///////////
    override func viewDidLoad() {
        super.viewDidLoad()

        definesPresentationContext = true
        self.resultsController.tableView.dataSource = self
        self.resultsController.tableView.delegate = self
        self.searchController = UISearchController(searchResultsController: self.resultsController)
        self.tableView.tableHeaderView = self.searchController.searchBar
        self.searchController.searchResultsUpdater = self
        self.searchController.dimsBackgroundDuringPresentation = true
        self.searchController.searchBar.sizeToFit()
        self.searchController.searchBar.barTintColor = UIColor.blackColor()
        self.searchController.searchBar.endEditing(true)
        self.searchController.searchBar.placeholder = "חפש ברים"
        self.searchController.hidesNavigationBarDuringPresentation = false
        self.searchController.searchBar.delegate = self

}

整個搜索欄故障UI的示例:

在此處輸入圖片說明

就像搜索欄不再是tableHeaderView一樣,它破壞了tableview將最后一個單元格和第一個單元格減半。

tableView定期顯示的示例:

在此處輸入圖片說明

先感謝您!

經過大量的設置后,我設法自己找到了解決方案,我不知道為什么這些特定的設置可以解決此問題,但是以下是為我解決了該問題的原因:

屬性檢查器中的設置:

在此處輸入圖片說明

viewDidLoad中的設置:

    override func viewDidLoad() {
                    super.viewDidLoad()

            //MARK : Fixes SearchBar Bugs

    self.resultsController.edgesForExtendedLayout = .All
    self.searchController.edgesForExtendedLayout = .All            

self.resultsController.extendedLayoutIncludesOpaqueBars = true

// End of Bug Fixes.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM