• swift4 UIScrollView滑动手势与UIPageViewController冲突解决办法


    UIPageViewController常用多页管理中,可能会碰到滑动手势与子页面中的UIScrollView滚动视图出现冲突。

    下图是我们需要的效果

    自定义一个scrollview 看代码就ok了

    class PanScroll: UIScrollView,UIGestureRecognizerDelegate {

        override init(frame: CGRect) {

            super.init(frame: frame)

        }

        

        required init?(coder aDecoder: NSCoder) {

            fatalError("init(coder:) has not been implemented")

        }

        

        func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool {

            

            if let swip = otherGestureRecognizer as? UIPanGestureRecognizer{

                

                if self.contentOffset.x <= 1 && self.commitTranslation(translation: swip.translation(in: self)) == .right {

                    

                    return true

                }

                

                if self.contentOffset.x >= UIScreen.main.bounds.size.width && self.commitTranslation(translation: swip.translation(in: self)) == .left {

                    

                    return true

                }

            }

            return false

        }

        

        ///MARK: pan手势方向

        enum panDic {

            case upward,down,left,right,none

        }

        

        func commitTranslation(translation:CGPoint ) ->panDic{

            let absX = fabs(translation.x)

            let absY = fabs(translation.y)

            

            // 设置滑动有效距离

            if max(absX, absY) < 2{

                return .none

            }

            

            if absX > absY  {

                if (translation.x<0) {return .left}else{return .right}

            } else if absY > absX {

                if (translation.y<0) {return .upward}else{return .down}

            }

            return .none

        }

    }

    群号:186052819
  • 相关阅读:
    627. whose 和 who's
    628. why 和why not
    629 will: 各种用法tyg
    enChapter 3 Underlying Technologiesp
    使用VIEWER.JS进行简单的图片预览
    outlook2010设置失败后重新设置
    新增和编辑clob字段
    金钱大写
    pivot 与 unpivot 函数是SQL05新提供的2个函数
    从函数到委托
  • 原文地址:https://www.cnblogs.com/zuidap/p/7326597.html
Copyright © 2020-2023  润新知