0

在我的应用程序中,我将多个小视图连接在一起形成了一个大画布。我分别为每个视图正确获取了触摸开始/移动/结束事件。我现在想要的是,如果我在 view1 处触摸并将手指拖出 view1 并拖入 view2 的区域而不抬起手指,我希望 view2 以某种方式收到我现在在这个视图中的通知,即 view2 . 谢谢。

4

1 回答 1

1

我能够使用 touchesMoved 方法来做到这一点。这是代码:

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
[super touchesMoved:touches withEvent:event];
CGPoint nowPoint = [touches.anyObject locationInView:self.view];
NSLog(@"%f, %f", nowPoint.x, nowPoint.y);

NSArray *viewsToCheck = [self.view subviews];
for (UIView *v in viewsToCheck)
{
    if ([v isKindOfClass:[CharacterTile class]])
    {
        if (CGRectContainsPoint(v.frame, nowPoint))
        {
            CharacterTile *ctTemp = (CharacterTile *)v;
            //perform your work with the subview.
        }
    }
}
}

其中 CharacterTile 是在 self.view 上添加的子视图。CGRectContainsPoint 告诉用户触摸的点是否在视图内。

于 2013-05-23T12:58:20.793 回答