【问题标题】:How to Check if a SubView was Tapped inside a UIScrollView如何检查子视图是否在 UIScrollView 中被点击
【发布时间】:2012-07-13 21:18:51
【问题描述】:

是否有可能知道我在命中测试方法期间是否成功点击了 UIView 内的子视图,该子视图位于 UIScrollView 内?

UIScrollView->UIView->SubView

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
    // Do something
}

谢谢!

【问题讨论】:

    标签: objective-c ios uiview uiscrollview subview


    【解决方案1】:

    多一点上下文会更好。

    只要将userInteractionEnabled 设置为YES 并且可见,即不隐藏且alpha 大于或等于0.01,您的子视图将是处理触摸的视图。

    我不确定您为什么要覆盖 hitTest:withEvent:,但如果您确定这是您想要做的,那么您应该能够使用 pointInside:withEvent: 解决您的问题。

    【讨论】:

    • 我的userInteractionEnabled 已设置为YES。我想要做的是检查用户是否点击了UIImageView,这样我就可以在可能的情况下停止滚动。谢谢!
    • 将您的图像视图放入 UIButton 或向其中添加手势识别器
    • @0xdeadfa11 UIImageView 默认将userInteractionEnabled 设置为NO。所以忘记将userInteractionEnabled 设置为YESUIImageViews 是一个常见的错误。无论如何,我认为这个答案会解决你的问题:stackoverflow.com/a/4629821/310121
    • 是的,这会有所帮助,但我有很多UIImageViews,我想处理一个特定的UIImageView。假设我解决了这个问题,当点击UIImageView 时,UIScrollView 现在不会滚动,但在某些时候我仍然希望它滚动(假设用户将手指放在屏幕上然后滑动)。是否有可能知道hitTest:withEvent: 上的滑动方向?可以说,对角向上滑动将禁用滚动,否则启用滚动。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2013-12-30
    • 1970-01-01
    • 2012-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多