1

想象一个 UIButton 和一个用户,他点击按钮外部的某个地方,然后滑到它上面。如果我希望按钮检测到此类触摸,我可以将其注册为任何“Touch Drag Enter”事件。

我的问题:有什么方法可以为 UIScrollView 实现同样的效果吗?即,我点击滚动视图之外的某个位置,将手指拖到滚动视图上,一旦我进入滚动视图框架,它就会开始平移?(因为默认情况下它没有,我必须在滚动视图内开始触摸才能平移)

4

2 回答 2

2

如果您想这样做,您必须使用 -touchesBegan、-touchesMoved 和 -touchesEnded 进行自定义实现

允许您执行此操作的 UIResponder 类(所有 ViewController 都继承自该类)的文档在这里

希望你能从这里弄清楚该怎么做。:)

作为一个额外的提示,你也很可能需要使用这个函数

bool contains = CGRectContainsPoint(CGRect rect, CGPoint point);
于 2013-05-10T23:54:09.877 回答
1

想象一个 UIButton 和一个用户,他点击按钮外部的某个地方,然后滑到它上面。如果我想让按钮检测到这样的触摸,我可以为任何“Touch Drag Enter”事件注册它

实际上,不,你不能。除非在控件中开始触摸,否则UIControl 不会获得任何控件事件。

这与您在滚动视图中看到类似效果的原因相同。这是 iOS 上触控交付的全部基础。触摸“属于”最初触摸的视图。

毕竟,运行时不可能知道你拖到滚动视图中......

于 2013-05-10T23:48:23.497 回答