1

我有一个带有点击手势的 UIImageview,这样任何点击它都会创建一个白色背景的矩形视图。我可以在 imageview 上移动任何位置。像这样,我可以在该图像视图上创建无限视图。

现在我的问题是我想向新创建的视图添加双击手势,但是当我单击任何这些视图时,会在该视图上创建一个新视图。

但我想要的是,如果我点击一个视图,则不必在该视图上创建新视图。目前,即使我在 UIImageView 上创建了一个新视图,gestureRecognizer 也能识别 UIImageView。

4

2 回答 2

1

图像视图,

UIImageView  *imageView = [[UIImageView alloc]init];
UITapGestureRecognizer * tapRecognizer = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(createNewView)];
[tapRecognizer setNumberOfTapsRequired:1]; // allow to create new view

UITapGestureRecognizer * tapRecognizerToFail = [[UITapGestureRecognizer alloc]init];
[tapRecognizer setNumberOfTapsRequired:2]; // to disallow more than 1 tap.

[tapRecognizer requireGestureRecognizerToFail:tapRecognizerToFail];
 [imageView setGestureRecognizers:[NSArray arrayWithObjects:tapRecognizer,tapRecognizerToFail,nil]];

// 在 ImageView 上创建新视图

-(void)createNewView
{
    UIView  * view = [[UIView alloc]init];
    UITapGestureRecognizer * tapRecognizer = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(newViewAction)];
    [tapRecognizer setNumberOfTapsRequired:2];
    [view addGestureRecognizer:tapRecognizer];

    [imageView addSubview:view];
}

// 在新创建的视图上双击操作

-(void)newViewAction
{
 // goes here
}
于 2013-04-04T11:06:35.133 回答
0

您可以使用 requireGestureRecognizerToFail: 声明两个识别器之间的依赖关系。

[secondaryGesture requireGestureRecognizerToFail:primaryGesture];
于 2013-04-04T11:07:11.520 回答