如何知道 UIScrollView 触摸顶部 scrollView 是不是与另一个 View 的 CGPoint 相交
Posted
技术标签:
【中文标题】如何知道 UIScrollView 触摸顶部 scrollView 是不是与另一个 View 的 CGPoint 相交【英文标题】:How to know if UIScrollView touches on top scrollView intersects with a CGPoint of another View如何知道 UIScrollView 触摸顶部 scrollView 是否与另一个 View 的 CGPoint 相交 【发布时间】:2017-06-21 15:45:50 【问题描述】:我有 2 个 UIScrollView。它们不是彼此的子视图。一个只是坐在另一个上方作为覆盖,用于获得这种效果:
现在,我在第二个 ScrollView(坐在下面的那个)上有一个 UIButton
。
我无法点击此按钮,因为顶部滚动视图正在捕获所有触摸。
这就是我想要完成的。但我被困住了。
-
我在 UIScrollView 上放了一个识别的 UITapGestureRecognizer
我想转换水龙头的 CGPoint 并将其转换到第二个滚动视图上的位置
如果该点与第二个 UIScrollView 上的 UIButton 的位置相交,那么我将只打印一条消息。
这是我的代码。请帮我看看有什么问题:
@IBAction func bufferviewCliked (sender: UITapGestureRecognizer)
// First I try to get the point of the object clicked inside as a point on
// the main self.view
let locationInMainView = sender.location(in: self.view)
// Next I try to convert that point, into a point on my backgroundScrollView
let touchPointInSecondView = self.view.convert(locationInMainView, from: backGround)
// If the point intersects with the point on the UIButton in the backgroundScrollView
// Then print hi
if followButton.frame.contains(touchPointInSecondView)
print("HI")
问题是我的点坐标是错误的,我不确定我是否使用了正确的东西。
【问题讨论】:
【参考方案1】:您可以从按钮获取 locationInView
@IBAction func bufferviewCliked (sender: UITapGestureRecognizer)
let location = sender.location(in: followButton)
// If the point intersects with the point on the UIButton in the backgroundScrollView
// Then print hi
if followButton.bounds.contains(location)
print("HI")
【讨论】:
以上是关于如何知道 UIScrollView 触摸顶部 scrollView 是不是与另一个 View 的 CGPoint 相交的主要内容,如果未能解决你的问题,请参考以下文章