【问题标题】:Is it possible to attach UIGestureRecognizer to subclassed UIImageView?是否可以将 UIGestureRecognizer 附加到子类 UIImageView?
【发布时间】:2011-10-26 18:03:15
【问题描述】:

在将 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{
  ...
}

【问题讨论】:

  • 错误消息“无法识别的选择器已发送到实例”将告诉您无法识别的选择器是什么以及您尝试将其发送到的实例的类。该信息应添加到问题中。
  • 很抱歉,这似乎是处理程序方法声明中的输入错误(输入错误的名称)此外,在应用@Srikar 建议后一切正常。

标签: iphone objective-c ios uiimageview uigesturerecognizer


【解决方案1】:

UIImageView 默认将setUserInteractionEnabled 标志设置为NOsetMultipleTouchEnabled 设置为NO。您是否尝试将这些标志转为YES

你可以这样改——

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-12
    • 2016-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多