iOS中的touchesBegan和响应者

时间:2014-03-22 02:12:01

标签: ios objective-c uitouch touchesbegan

如何向对象添加事件识别器?

我有以下代码:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
NSLog(@"touches happened");


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

    for (UIView *view in self.mainView.subviews)
    {
        if ([view isKindOfClass:[ViewController class]] &&
            CGRectContainsPoint(view.frame, touchLocation))
        {
            NSLog(@"my Touch Happened");
            UIImageView *tmp = (UIImageView *)view;
            if (selectedItem != tmp)
                [self setSelected:tmp];

        }
    }
}

我的目标是,如果我的图像被触摸,没有敲击或长按但是完全触摸,从NSLog(@"found whats being touched");开始执行逻辑

我之前使用过UIGestureRecognizer,你可以将它们添加到你想要的任何内容中。

[self.SomeImage addGestureRecognizer:rotate];

但是如何告诉我的对象听这段代码呢?

我想知道触摸区域是否与另一个物体存在的区域相同?也就是说,如果用户正在尝试平移项目。我可以处理锅。但是在泛之前的第二个是触摸。我如何找到触摸和与之相关的对象!

1 个答案:

答案 0 :(得分:1)

UIViewController和UIView直接支持- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

您可以直接将您的功能放在这些对象中。 (即UIView或UIViewController)