从 TouchesMoved 获取子视图参考

Posted

技术标签:

【中文标题】从 TouchesMoved 获取子视图参考【英文标题】:Getting a subview Reference from TouchesMoved 【发布时间】:2015-11-14 04:44:02 【问题描述】:

我有一个二维网格的子视图。当我沿着这些子视图拖动手指时,我想调用离散方法的每个视图,这样对于我悬停在上面的每个视图,这个方法都会被调用一次。注销 touches 参数的结果,似乎只有一个视图通过拖动引用,即 touchesbegan 位于其顶部的视图。如何根据坐标获取手指当前拖动位置的视图?

【问题讨论】:

1) 使用来自 parentView 的 hitTest。 2) 将触摸传递给 nextResponder() 【参考方案1】:
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event 

    UITouch *touch = [[event allTouches] anyObject];
    CGPoint touchLocation = [touch locationInView:self.contentView];

    for (UIView *view in self.contentView.subviews)
    
        if ([view isKindOfClass:[MyView class]] &&
            CGRectContainsPoint(view.frame, touchLocation))
        

        
    

参考:ios - Detecting touches in a UIView?

【讨论】:

以上是关于从 TouchesMoved 获取子视图参考的主要内容,如果未能解决你的问题,请参考以下文章

是否可以从 touchesBegan 或 touchesMoved 内部取消触摸?

如何在窗口的参考(objc)中获取子视图框架?

在 touchesMoved 委托中获取像素的 RGB

touchesbegin, touchesmoved, touchesended 问题

如何让 touchesMoved 只控制一个视图?

在滚动视图中的自定义视图中使用触摸进行缩放。 touchesMoved 未调用