jar*_*ryd 2 iphone uigesturerecognizer
我有很多类,并希望在他们的UIImageViews中添加一个UIGestureRecognizer.
我正确地为所有类添加一个.事情是我重复代码,以便每个类添加相同的识别器.这些是本地识别者
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget : self action : @selector (handleSingleTap:)];
[singleTap setNumberOfTapsRequired:1];
[background addGestureRecognizer:singleTap];
[singleTap release];
Run Code Online (Sandbox Code Playgroud)
所以它应该仍适用于每个班级.
问题是它只适用于第一类,而不适用于其他类.
background是UIImageView,存在于每个类中.所以我有多个背景.
我提出了每个新的ModelViewController类,这可能是什么问题?
我使用识别器如下
- (void) handleSingleTap : (UIGestureRecognizer*) sender
{
//do whatever
}
Run Code Online (Sandbox Code Playgroud)
每个类也实现了
@interface Someclass : UIViewController <UIGestureRecognizerDelegate>
Run Code Online (Sandbox Code Playgroud)
我不知道为什么它不起作用.我在每个handleSingleTap方法中打印出来.什么都没打印出来
首先 是您是否将相同的识别器对象添加到不同的视图?如果是这样就行不通.UIGestureRecognizer对象仅在一个视图中检测/跟踪手势.因此,请确保为每个视图设置不同的识别器对象,例如:
UITapGestureRecognizer *r1 = [UITapGestureRecognizer alloc] initWithTarget:self action:...];
[view1 addGestureRecognizer:r1];
[r1 release];
UITapGestureRecognizer *r2 = [UITapGestureRecognizer alloc] initWithTarget:self action:...];
[view2 addGestureRecognizer:r2];
[r2 release];
...
Run Code Online (Sandbox Code Playgroud)
第二步确保视图(在本例中为UIImageView)[uiimageview setUserInteractionEnabled:YES];
第三,如果你只是检测简单的触摸,那么就没有必要采用UIGestureRecognizerDelegate协议,所以只需从@interface删除该协议
希望能帮助到你
| 归档时间: |
|
| 查看次数: |
1240 次 |
| 最近记录: |