TableView无法正确显示单元格

时间:2016-11-21 21:09:22

标签: ios uitableview swift3 uisearchdisplaycontroller

拥有财产

var resultSearchController = UISearchController()

在viewDidLoad()方法上创建UISearchController

        self.resultSearchController = ({
        let controller = UISearchController(searchResultsController: nil)
        controller.searchResultsUpdater = self
        controller.dimsBackgroundDuringPresentation = false
        controller.searchBar.sizeToFit()
        controller.searchBar.barStyle = UIBarStyle.black
        controller.searchBar.barTintColor = UIColor.white
        controller.searchBar.backgroundColor = UIColor.clear
        controller.hidesNavigationBarDuringPresentation = false
        self.tableView.tableHeaderView = controller.searchBar
        return controller
    })()

结果是具有正常显示加号的注释文本,特别是在每个单元格的左上角显示文本的开头。 我该怎么办? 附:弄清楚它很可能与UISearchBar

无关

enter image description here

2 个答案:

答案 0 :(得分:1)

我不熟悉你如何创建resultSearchController,因为我从未见过这样的结构。但是,这可能是我有限的知识。我会以更有可能成功的结果创建resultSearchController。

lazy var resultSearchController : UISearchController = {
        let controller = UISearchController(searchResultsController: nil)
        controller.searchResultsUpdater = self
        controller.dimsBackgroundDuringPresentation = false
        controller.searchBar.sizeToFit()
        controller.searchBar.barStyle = UIBarStyle.black
        controller.searchBar.barTintColor = UIColor.white
        controller.searchBar.backgroundColor = UIColor.clear
        controller.hidesNavigationBarDuringPresentation = false
        self.tableView.tableHeaderView = controller.searchBar
        return controller
}()

这是懒惰地初始化将在使用时创建的变量并获得您定义的所有设置的正确方法。

如果这不起作用,那么定义和初始化就不是问题所在,你应该展示一些可能出错的代码。

答案 1 :(得分:0)

我找到了我犯了错误的台词。我使用了属性cell.textLabel而不是cell.noteLabel。 Ty适合你的时间。

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cellIdentifier = "NoteTableViewCell"

    let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier, for: indexPath) as! NoteTableViewCell
    let note: Note
    if self.resultSearchController.isActive {
        note = filteredNotes[indexPath.row]
        cell.textLabel?.text = filteredNotes[indexPath.row].note
    } else {
        note = notes[indexPath.row]
        cell.textLabel?.text = notes[indexPath.row].note
    }

    return cell
}