Можно ли присоединить UIGestureRecognizer к подклассу UIImageView? - PullRequest
1 голос
/ 26 октября 2011

Получение сообщения об ошибке с сообщением «нераспознанный селектор отправлен в экземпляр» при подключении 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 Ответ

2 голосов
/ 26 октября 2011

UIImageView по умолчанию имеет флаг setUserInteractionEnabled, установленный на NO & setMultipleTouchEnabled, установленный на NO. Вы пытались установить эти флаги на YES?

Вы можете изменить это так -

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