是否可以将UIGestureRecognizer附加到子类UIImageView?

时间:2011-10-26 18:03:16

标签: iphone objective-c ios uiimageview uigesturerecognizer

在将UIPanGestureRecognizer附加到子类UIImageView时,使用“无法识别的选择器发送到实例”消息进行崩溃。我需要继承UIImageView以保存自定义属性,所以我只是这样做并添加了这些属性。我已经在UIImageView上直接测试了平移,它按预期工作。但是,它不适用于子类UIImageView。这是代码(self.myImageView是子类UIImageView,self.defaultImageView是UIImageView):

- (void)viewDidLoad
{
  [super viewDidLoad];

  UIPanGestureRecognizer * pgr = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(moveCustomImageView:)];
  [self.myImageView addGestureRecognizer:pgr]; //nop, getting error during runtime on start panning
  [pgr release];
  ...
  pgr = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(moveUIImageView:)];
  [self.defaultImageView addGestureRecognizer:pgr]; //yep, that works
  [pgr release];

处理程序方法声明具有相同的结构

-(void)moveUIImageView:(UIPanGestureRecognizer *)pan{
  ...
}

-(void)moveCustomImageView:(UIPanGestureRecognizer *)pan{
  ...
}

1 个答案:

答案 0 :(得分:2)

默认情况下,

UIImageViewsetUserInteractionEnabled标记设置为NO& setMultipleTouchEnabled设置为NO。您是否尝试将这些标记转换为YES

你可以这样改变 -

[self.myImageView setMultipleTouchEnabled:YES];
[self.myImageView setUserInteractionEnabled:YES];