2016-08-23 2 views
0

그래서 tableView가 있습니다. 헤더는 탐색 컨트롤러를 숨기는 UISearchController입니다. 사용자가 검색 컨트롤러에서 취소를 탭하거나 위로 올려 해당 tableView를 맨 위로 스크롤 할 때를 원합니다.UITableView TableView 헤더에서 SearchController를 사용하여 맨 위로 스크롤

문제는

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

실제로이 경우, SearchController의 Y입니다있는 tableView의 상단에 스크롤, 그래서 반 내 셀은,이 시점에서 검색 컨트롤러 뒤에 있다는 것입니다.

tableView.scrollRectToVisible(CGRectZero, animated: false) 

도 동일한 동작을합니다. 검색 후

예 :

enter image description here

+0

당신이 비활성화 자동 스크롤 뷰 세트를 조정해야? –

+0

@VishalSonawane 네, 도움이되지 않습니다. –

답변

0

그래서, 나는 모든 것을 다시 실행과 함께 스크롤하여 작동하도록 관리 :

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

같은 문제에 직면하고 나는이 때문에 범위 타이틀의 일이 생각, 노력이 하나 :

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

또는 당신은 상단 헤더를 설정할 수 있습니다 높이

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

설정을 시도 해 보셨습니까? f를있는 tableview

tableView.contentOffset = CGPointMake(0, searchBar.bounds.size.height);