Ios 在使用多个UIView时单击事件UIView
我是IOS开发的新手,在onclick事件中搜索UIView,我发现这段代码工作得非常好。但它不调用特定的UIView,因为我使用多个UIView,并且希望分别在所有UIView上添加事件,而这段代码调用任一UIView的handleSingleTap onclick。请帮忙Ios 在使用多个UIView时单击事件UIView,ios,objective-c,events,uiview,onclick,Ios,Objective C,Events,Uiview,Onclick,我是IOS开发的新手,在onclick事件中搜索UIView,我发现这段代码工作得非常好。但它不调用特定的UIView,因为我使用多个UIView,并且希望分别在所有UIView上添加事件,而这段代码调用任一UIView的handleSingleTap onclick。请帮忙 - (void)viewDidLoad { [super viewDidLoad]; UITapGestureRecognizer *singleFingerTap = [[UITapGestureRecognizer a
- (void)viewDidLoad
{
[super viewDidLoad];
UITapGestureRecognizer *singleFingerTap =
[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)];
[self.view addGestureRecognizer:singleFingerTap];
}
- (void)handleSingleTap:(UITapGestureRecognizer *)recognizer {
CGPoint location = [recognizer locationInView:[recognizer.view superview]];
NSLog(@"Clicked");
}
您可以创建UITapgestureRecognitor并将其添加到要单击的视图中。
您还可以在每个视图上设置标记属性,以确定单击了哪个视图
例如:
UITapGestureRecognizer *singleFingerTap1 =
[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)];
view1.tag = 1;
[view1 addGestureRecognizer:singleFingerTap1];
UITapGestureRecognizer *singleFingerTap2 =
[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)];
view2.tag = 2;
[view2 addGestureRecognizer:singleFingerTap2];
//..and so on
- (void)handleSingleTap:(UITapGestureRecognizer *)recognizer {
UIView *viewClicked = recognizer.view;
NSLog(@"Clicked: %d", viewClicked.tag);
}
另一种解决方案是在主视图中添加一个手势识别器,该视图包含其他视图,如您发布的内容和handleSingleTap:方法检查该点是否在视图内:
BOOL isPointInsideView1 = [view1 pointInside:location withEvent:nil];
BOOL isPointInsideView2 = [view1 pointInside:location withEvent:nil];
但是,当一个视图覆盖另一个视图时,ic可能会失败。谢谢,这是一个很好的工作方式,只是我的程序中的一个问题我现在有3个UIView mover、flipper、grower,它为flipper和grower工作,但不为mover工作。。。在我看来有什么问题吗?