scrollview与导航返回手势冲突问题

继承一个scrollview,重写下面方法

方法一、

func panBack(gestureRecognizer:UIGestureRecognizer)->Bool {

let location_X:CGFloat = 100;

if gestureRecognizer == panGestureRecognizer {

let pan = gestureRecognizer as! UIPanGestureRecognizer

let point = pan.translation(in: self)

let state = gestureRecognizer.state

if state == UIGestureRecognizerState.began || state == UIGestureRecognizerState.possible {

let location = gestureRecognizer.location(in: self)

if point.x > 0 && location.x < location_X && contentOffset.x <= 0 {

return true

}

}

}

return false

}

override func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {

if panBack(gestureRecognizer: gestureRecognizer) {

return false

}

return true

}

方法二、

override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? {

var hitView = super.hitTest(point, with: event)

if point.x <= 20 {

hitView = nil

}else {

hitView = super.hitTest(point, with: event)

}

return hitView

}

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

推荐阅读更多精彩内容