2017-10-11 72 views
1

我正試圖達到這個效果。如何在滾動時隱藏UIView?

enter image description here

我試圖隱藏一個視圖,當用戶滾動起來,並揭示其作爲用戶向下滾動。

我不知道如何去做這件事。 我試着看scrollView didScroll函數,但我失去了如何設置它。有什麼建議?

+1

顯示迄今爲止你做了什麼? – cole

+0

另外確認,你的視圖是簡單的UIView還是tableView或者collectionView? – cole

+0

我的選擇是記住'didScroll'方法中'scrollView'的'contentOffset'。然後,如果你看到'scrollView'上升,你應該將你的自定義視圖移動(動畫)到某個點(正如我與Alpha一起看到的那樣)。當你注意到它停下來做反例(也限於某個點)。 – Adamsor

回答

3

Hiding content on scroll

請檢查該庫它做你的連接GIF做什麼。

另一種方法是從你附加的gif文件。 在頂部添加搜索欄。並將隱藏部分作爲標題並對齊搜索欄和tableview以獲取該動畫。

1

您需要設置滾動視圖的容器視圖和要作爲滾動視圖的代理隱藏的視圖,並註冊該類以符合UIScrollViewDelegate協議。

您還需要跟蹤滾動視圖的內容偏移財產,並setvthis初始滾動視圖的偏移創建時:

fileprivate var scrollOffset : CGPoint 

然後,正如你所說,使用scrollViewDidScroll方法:

internal func scrollViewDidScroll(_ scrollView: UIScrollView) { 
    let delta : CGPoint = CGPoint(x: scrollView.contentOffset.x - scrollOffset.x, 
     y: scrollView.contentOffset.y - scrollOffset.y) 

    if delta.y > 0, subviewToFade.isDescendant(of: self) { 
      // fade out subviews and remove 
    else if delta < 0, !subviewToFade.isDescendant(of: self) { 
      // add subviews and fade back in 

    } 

    scrollOffset = scrollView.contentOffset 
} 

希望有所幫助。