如何向对象添加事件识别器?
我有以下代码:
- (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];
但是如何告诉我的对象听这段代码呢?
我想知道触摸区域是否与另一个物体存在的区域相同?也就是说,如果用户正在尝试平移项目。我可以处理锅。但是在泛之前的第二个是触摸。我如何找到触摸和与之相关的对象!
答案 0 :(得分:1)
UIViewController和UIView直接支持- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
您可以直接将您的功能放在这些对象中。 (即UIView或UIViewController)