добавление жеста-реконгенизатора программно - PullRequest
7 голосов
/ 19 февраля 2012

Я знаю, как добавить распознаватель жестов через IB, но я пытаюсь понять это без использования IB.

Так что в основном то, что сейчас есть

blue1.userInteractionEnabled = YES;
UIPanGestureRecognizer *pgr = [[UIPanGestureRecognizer alloc] 
                               initWithTarget:self action:@selector(handlePan:)];

[blue1 addGestureRecognizer:pgr];
[pgr release];

и мой дескриптор

-(IBAction)handlePan:(UIPanGestureRecognizer *)recognizer {

    CGPoint translation = [recognizer translationInView:self.view];

    recognizer.view.center = CGPointMake(recognizer.view.center.x + translation.x, recognizer.view.center.y + translation.y);

    [recognizer setTranslation:CGPointMake(0, 0) inView:self.view];

}

это прекрасно работает, если я делаю это через IB, и я могу снять фильм вокруг.

Я не понимаю, что заставляет его не двигаться, как это сейчас закодировано.

Любая помощь приветствуется.

Я также попытался - (void) вместо - (IBAction) в моем handlePan, но это тоже не сработало.

1 Ответ

6 голосов
/ 19 февраля 2012

Тот факт, что это работает в IB, но не в коде, предполагает, что ошибка в первом блоке кода.Я подозреваю, что blue1 - это nil.Убедитесь, что вы не пытаетесь изменить представления до viewDidLoad.Все они будут nil в initWithFrame: и awakeFromNib.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...