UITableView使用tableView标头中的SearchController滚动到顶部

时间:2016-08-23 11:44:09

标签: ios swift uitableview uisearchcontroller

所以我有一个tableView。它的标题是一个隐藏导航控制器的UISearchController。我希望当用户在搜索控制器上搜索或点击取消时,将该tableView滚动到顶部。

问题在于

let top = NSIndexPath(forRow: 0, inSection: 0)
tableView.scrollToRowAtIndexPath(top, atScrollPosition: .Top, animated: false)

实际上滚动到tableView的顶部,在这种情况下,它是SearchController的Y,因此我的单元格的一半是在搜索控制器的后面。

tableView.scrollRectToVisible(CGRectZero, animated: false)

具有相同的行为。

搜索后的示例:

enter image description here

3 个答案:

答案 0 :(得分:0)

遇到同样的问题,我认为这是因为范围标题,试试这个:)

self.searchController.searchBar.scopeButtonTitles = [NSArray array]

或者您可以设置顶部标题高度

func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
    return 44.0
 }   

答案 1 :(得分:0)

您是否尝试过设置tableview的contentoffset

public function index($client_id)
{
    $campaigns = Campaign::where('client_id', $client_id)->get();
}

答案 2 :(得分:0)

所以,我设法通过重做所有内容并滚动来实现它:

func scrollToTableViewTop() {
    tableView.setContentOffset(CGPointZero, animated: false)
}