我将表格视图的搜索栏作为其tableHeaderView(主要是因为即使在调用reloadData时,它也保持键盘焦点)。

我也有我的右边缘字母索引列表,其中令人惊叹的UITableViewIndexSearch表示放大镜图标。但是sectionForSectionIndexTitle:atIndex:仅允许将其映射到部分索引0,该索引会自动滚动到表视图的第一部分(但将我的搜索字段隐藏在其上方)。每当点击索引的放大镜图标时,最优雅的显示全部tableHeaderView的方法是什么?

最佳答案

从Matt Neuberg的书“ Programming iOS 7”中,我发现了这个相当有用的技巧:

当用户点击放大镜(索引为0)时,它会将标题滚动到视图中,我们将返回假的章节号。

迅速:

func tableView(tableView: UITableView,
       sectionForSectionIndexTitle title: String,
                           atIndex index: Int) -> Int {
    if(index == 0){
        tableView.scrollRectToVisible((tableView.tableHeaderView?.frame)!, animated: false)
    }
    return index-1
}


目标C:

- (NSInteger)tableView:(UITableView *)
       sectionForSectionIndexTitle:(NSString *)title
                           atIndex:(NSInteger)index {
    if(index == 0)
        [tableView scrollRectToVisible:tableView.tableHeaderView.frame animated: NO];

    return index-1;
}

关于ios - 使UITableViewIndexSearch跳转到tableHeaderView而不是第0节,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26149526/

10-10 08:48