判断ScrollView滚动方向

enum LiveListScrollDirection: Int {
    case none
    case crazy
    case left
    case right
    case up
    case down
    case horizontal
    case vertical
}
    func determineScrollDirection(scrollView: UIScrollView) -> LiveListScrollDirection {
        var scrollDirection: LiveListScrollDirection
        
        if self.initialContentOffset.x != scrollView.contentOffset.x && self.initialContentOffset.y != scrollView.contentOffset.y {
            scrollDirection = .crazy
        } else {
            if self.initialContentOffset.x > scrollView.contentOffset.x {
                scrollDirection = .left
            } else if self.initialContentOffset.x < scrollView.contentOffset.x {
                scrollDirection = .right
            } else if self.initialContentOffset.y > scrollView.contentOffset.y {
                scrollDirection = .up
            } else if self.initialContentOffset.y < scrollView.contentOffset.y {
                scrollDirection = .down
            } else {
                scrollDirection = .none
            }
        }
        return scrollDirection
    }
    
    func determineScrollDirectionAxis(scrollView: UIScrollView) -> LiveListScrollDirection {
        let scrollDirection: LiveListScrollDirection = self.determineScrollDirection(scrollView: scrollView)
    
        switch scrollDirection {
        case .left,.right:
            return .horizontal
        case .up,.down:
            return .vertical
        default:
            return .none
        }

参考地址

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容