在 contentView 中禁用侧视图上的手势
Posted
技术标签:
【中文标题】在 contentView 中禁用侧视图上的手势【英文标题】:Disable gesture on sideViews in contentView 【发布时间】:2017-02-25 09:36:40 【问题描述】:我在我的 collectionView 单元格中显示三个视图。一个完整的在中间,在 contentView 的角落预览下一个和上一个。并使用 panGesture 向上滑动中间视图。如何在侧视图上禁用 panGesture?
这是图片:
我在内容视图上添加了 panGestureRecognizer。但我不想让侧视图识别手势,而且我想让侧面图像的颜色很淡。我该怎么做?
【问题讨论】:
【参考方案1】:您可以使用 UIGestureRecognizerDelegate。实现方法:
func wasDragged(gestureRecognizer: UIPanGestureRecognizer)
if gestureRecognizer.state == UIGestureRecognizerState.began
print("was dragged began")
if gestureRecognizer.state == UIGestureRecognizerState.changed
print("was dragged change \(gestureRecognizer.location(in: self.view))")
testTouches(touches: gestureRecognizer.location(in: self.view))
if gestureRecognizer.state == UIGestureRecognizerState.ended
print("was dragged ended")
比实现方法来测试触摸点:
func testTouches(touches: CGPoint)
// Get location of touch
let touchLocation = touches
// Convert the location of the side views to this view controller's view coordinate system
let sideViewFrame = self.view.convert(sideView.frame, from: sideView.superview)// Check if touch is inside side view
if sideViewFrame.contains(touchLocation)
// do nothing
else
// do something
【讨论】:
以上是关于在 contentView 中禁用侧视图上的手势的主要内容,如果未能解决你的问题,请参考以下文章