2012-06-11 5 views
6

Я создал собственный подкласс UIView, потому что мне нужно было переопределить метод drawRect. Я пытаюсь добавить к нему UITapGestureRecognizer, но это не работает для меня. Здесь код моего ViewController:UITapGestureRecognizer не запускается на подклассе UIView

MyCustomView *customView = [[MyCustomView alloc] initWithFrame:CGRectFrame(0, 30, 30, 30)]; 
[customView setUserInteractionEnabled:YES]; 

UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(doSomething)]; 
[customView addGestureRecognizer:tapGestureRecognizer]; 

Я не понимаю, почему, когда я касаюсь моего объекта UIView подкласса, жест распознаватель не вспылить.

Большое спасибо!

FIXED IT OUT!

Мой взгляд был на UIImageView, и что UIImageView не установил userInteractionEnabled в значение YES.

+0

- ваши оценки/рамки правильно? – CarlJ

+0

Видимо, да, мой подвал фактически представляет собой круг, нарисованный с помощью CoreGraphics. кадр: 10, 30, 30, 30. – Vinestro

+0

Для информации (это может помочь), код, который я вам показываю, находится в методе tableView: cellForRowAtIndexPath. Одна идея? – Vinestro

ответ

13

FIXED IT OUT!

Мой взгляд был на UIImageView, и что UIImageView не установил userInteractionEnabled в значение YES.

+0

Это помогло мне даже 3 года спустя. Благодаря! – yeesterbunny

0

Убедитесь, что вы показываете его где-нибудь (addSubview).

+0

Да, я показываю свое мнение. После добавления распознавателя жестов я создаю метод addSubview. – Vinestro

0

Также убедитесь, что для параметра userInteractionEnabled установлено значение true. Если это правда, отправьте код, который создает и подключает распознаватель жестов.

+0

userInteractionEnabled имеет значение true. Я разместил код в своем первом коде только поверх темы. Заранее спасибо – Vinestro

0

Установите UserInteractionEnable чек правда на подвид, что вы добавляете и в методе селектора, сделайте передать объект вместе с ним, т.е.

UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(doSomething:)]; 

и сделать метод выбора в качестве

-(void) doSomething:(UITapGestureRecognizer *)gesture; 

Сообщите мне, если у вас все еще есть проблема. Спасибо!

+0

Это было то, что UIImageView, в котором я добавляю свой под просмотр, не был userInteractionEnabled ... Исправлено, спасибо! – Vinestro

+0

Это здорово. Теперь не забывайте оставлять сообщение без ответа или без отметки. Приветствия! –

Смежные вопросы