Scroll view 備忘

Stroyboard中使用ScrollView

當咱們使用Storyboard開發項目時,若是要往控制器上拖入一個ScrollView而且添加約束設置滾動區域,是有特殊的規定的:swift

  • 拖入一個scrollview,規定它的位置大小:

  • 若是想要scrollview滾動的話,須要一個view做爲scrollview的子視圖,稱之爲 containerView,而且containerView的約束決定着scroll view 是否能夠滾動

注意:在實際開發中,咱們可能會遇到不止上下滾動(設置水平居中和高度)的時候,若是要左右滾動就設置垂直居中和寬度就好,若是要上下左右均可以滾動的話,就設置寬高、不須要設置水平或者垂直居中spa

 

經常使用方法和屬性

        // 滾動區域
        scrollView.contentSize
        // 當前的滾動位置,偏移量
        scrollView.contentOffset
        // content view 的定點位於 scroll view 的位置
        scrollView.contentInset

 

        // 定向鎖定 true的話就算是雙向滾動,觸發滾動時也只能單向滾動
        scrollview.directionalLockEnabled = true
        // 滾動條樣式
        scrollview.indicatorStyle = UIScrollViewIndicatorStyle.Black
        // 減速速度
        scrollview.decelerationRate = 0.5

 

代理方法備忘

 

    // 視圖滾動中就會調用這個方法,屢次調用。
    func scrollViewDidScroll(scrollView: UIScrollView) {
        
    }
    
    // 是否容許點擊狀態欄滾動到最頂部。
    func scrollViewShouldScrollToTop(scrollView: UIScrollView) -> Bool {
        return true
    }
    
    // 在容許點擊狀態欄滾動到最頂部的狀況下,點擊狀態欄滾動到最頂部時調用
    func scrollViewDidScrollToTop(scrollView: UIScrollView) {
        print("scrollViewDidScrollToTop")
    }
    
    // 滾動即將開始拖動,當手指稍微移動一點點時調用方法
    func scrollViewWillBeginDragging(scrollView: UIScrollView) {
        print("scrollViewWillBeginDragging")
    }
    
    // 滾動視圖已經結束減速,即爲滾動視圖已經中止了滾動
    func scrollViewDidEndDecelerating(scrollView: UIScrollView) {
        print("scrollViewDidEndDecelerating")
    }
    
    // 滾動視圖即將開始減速,當手指離開後讓scrollview天然減速,就會調用這個方法
    func scrollViewWillBeginDecelerating(scrollView: UIScrollView) {
        print("scrollViewWillBeginDecelerating")
    }
    
    // 這個方法當調用 scrollview.setContentOffset(animation:) 這個方法時纔會調用這個方法
    func scrollViewDidEndScrollingAnimation(scrollView: UIScrollView) {
        print("scrollViewDidEndScrollingAnimation")
    }
    
    // 滾動視圖即將中止拖拽,即手指離開屏幕那一刻
    func scrollViewWillEndDragging(scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {
        print("scrollViewWillEndDragging")
    }
    
    // 滾動書體已經中止拖拽,會比scrollViewWillEndDragging晚調用
    func scrollViewDidEndDragging(scrollView: UIScrollView, willDecelerate decelerate: Bool) {
        print("scrollViewDidEndDragging")
    }
    
    // 滾動視圖已經縮放,屢次調用
    func scrollViewDidZoom(scrollView: UIScrollView) {
        print("scrollViewDidZoom")
    }
    
    // 滾動視圖即將開始縮放
    func scrollViewWillBeginZooming(scrollView: UIScrollView, withView view: UIView?) {
        
    }
    
    // 滾動視圖已經縮放完畢
    func scrollViewDidEndZooming(scrollView: UIScrollView, withView view: UIView?, atScale scale: CGFloat) {
        
    }
    
    // 返回要縮放的視圖
    func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? {
        return zoomingView
    }
相關文章
相關標籤/搜索