2015-12-02 90 views
1

你好,我試圖用的UITableView,我加入viewDidLoad方法一個搜索欄,如下所示: enter image description here的UITableView,搜索欄和部分指數

並用以下方法部分索引條: enter image description here

我的問題是:

1可以推低指數欄,以便它不包括搜索欄

2-是POSS IBLE到在viewDidLoad方法整個的tableView滾動到隱藏搜索欄應用程序

enter image description here

+0

這可能有助於http://stackoverflow.com/a/39388169/2033377 –

回答

0

我不知道這是否是實現這一目標的最簡單的方法,但它工作的啓動。

第一件事就是不將搜索欄添加爲標題視圖,而是將其添加到單獨的滾動視圖中。像這樣的東西(利潤率ilustratory僅供參考):淡藍色是底層滾動視圖 nested views

此,自動修復問題#1 - 索引欄現在是搜索欄下。

因爲這個嵌套的滾動視圖(表視圖是滾動視圖的子類),如果我們希望有一個平滑滾動的經驗,我們需要繼承UIScrollView像現在:

class InnerScrollView: UIScrollView { 
    func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, 
     shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool { 
      return true 
    } 
} 

和使用這個類作爲我們的底層滾動視圖 - 無論是在代碼中,還是通過在Interface Builder中設置它。這使得當用戶滾動時,搜索欄將首先出現/消失,然後表格視圖內容將平滑滾動。

至於初始偏移量,這將需要在viewDidLayoutSubviews中完成,因爲這是您可以確定已經設置了滾動視圖的第一個位置。

override func viewDidLayoutSubviews() { 
    super.viewDidLayoutSubviews() 

    let initalContentOffset = CGPoint(x: 0, y:self.tableView.frame.origin.y) 
    self.underlyingScrollView.contentOffset = initalContentOffset 

} 

讓我知道是否有什麼不清楚。