如何在iphone sdk中检测uiview上的触摸次数

时间:2011-10-04 07:40:36

标签: objective-c xcode uiimageview touch

在我的应用中,当用户触及view时,我在那里显示UIImageView并且我拖动

将图像从另一个UIImageView放到触及的UIImageView

但问题是,只有最近触及的UIImageView被激活。我的意思是,当我

单击3次,然后显示3 UIImageViews,但只激活最后一个并接受另一个

图像。

如何让所有被触及的UIImageViews被激活..对此有任何身体帮助..

提前致谢。

2 个答案:

答案 0 :(得分:1)

您应该阅读responder chain and event handling上的Apples文档。这里的关键UIView方法是

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event 
  

此方法通过发送遍历视图层次结构   pointInside:withEvent:消息到每个子视图以确定哪个   子视图应该会收到触摸事件。如果pointInside:withEvent:   返回YES,然后遍历子视图的层次结构;否则,它   视图层次结构的分支被忽略。你很少需要打电话   方法你自己,但你可以覆盖它来隐藏触摸事件   子视图。

答案 1 :(得分:0)

你应该试试这个: 哪里有你的UIView(或视图):

UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapped:)];
tapGesture.numberOfTapsRequired = 1;//number of tap
[view addGestureRecognizer:tapGesture];

选择器:

-(void)tapped:(UITapGestureRecognizer *)sender {
NSLog(@"Pressed");
}