当UISearchController的searchBar处于活动状态时,点击UITableView索引(A ... Z)

时间:2015-09-10 05:33:53

标签: ios swift uitableview uisearchcontroller

我有一个UITableView耦合到UISearchController。

通过将搜索栏作为表格视图标题进行连接,如下所示:

tableView.tableHeaderView = searchController.searchBar

我在侧面的索引栏和部分标题之间进行链接,如下所示:

func tableView(tableView: UITableView, sectionForSectionIndexTitle title: String, atIndex index: Int) -> Int {
    if searchPredicate != nil {
        for (index, section) in enumerate(filteredSections) {
            if section.name == title {
                return index
            }
        }
        return 0
    } else {
        return self.fetchedResultsController.sectionForSectionIndexTitle(title, atIndex: index)
    }
}

这很好用。

当搜索栏处于活动状态时,它在滚动时始终可见(这是预期的行为)。

我的问题是当我点击侧面索引栏中的一个索引字母时。它滚动到节标题,但由于搜索栏在处于活动状态时始终可见,我们无法看到节标题标题和该节的第一行的一部分,我们必须手动滚动。

就像在此快照上一样,我点击了索引字母L

enter image description here

有没有办法解决它(接受任何黑客攻击)?

1 个答案:

答案 0 :(得分:2)

如果您希望UISearchBar在UITableView上可见,您应该尝试为tableView设置insets。如

[self.tableView setContentInset:UIEdgeInsetsMake(44, 0, 0, 0)];