Я пытаюсь сделать распознаватель жестов для простого UIView:
UIView *theView = [[UIView alloc] initWithFrame:rect];
[theView setUserInteractionEnabled:YES];
UITapGestureRecognizer *tap = [[[UITapGestureRecognizer alloc] initWithTarget:self
action:@selector(handleTap)] autorelease];
[theView addGestureRecognizer:tap];
Если я отлаживаю свойствоgestRecognizersпредставления, оно показывает объект распознавателя жестов. Но когда я нажимаю внутри представления, это не работает.
Тот же код, использующий UIImageView, работает отлично, есть идеи, почему он не работает в UIView?
ОБНОВЛЕНО:
Примерный класс.
@implementation ExampleClass
- (UIView *)getViewInRect:(CGRect)rect
{
UIView *theView = [[UIView alloc] initWithRect:rect];
[theView setUserInteractionEnabled:YES];
UITapGestureRecognizer *tap = [[[UITapGestureRecognizer alloc]
initWithTarget:self
action:@selector(handleTap)]
autorelease];
[aText addGestureRecognizer:tap];
return theView;
}
- (UIImageView *)getImageViewInRect:(CGRect)rect
{
UIImageView *theView = [[UIImageView alloc] initWithRect:rect];
[theView setUserInteractionEnabled:YES];
UITapGestureRecognizer *tap = [[[UITapGestureRecognizer alloc]
initWithTarget:self
action:@selector(handleTap)]
autorelease];
[theView addGestureRecognizer:tap];
return [theView autorelease];
}
- (void)handleTap
{
NSLog(@"Tap Handled!!", nil);
}
@end
ОБНОВЛЕНО 2:
Добавление UITapGestureRecognizer ко всем подвидам представления не решает проблему...
ПОЧИНИ ЭТО!!!
В ПОРЯДКЕ!! Проблема заключалась в том, что CGRect для theView имел ширину, установленную на 0.0!!!
UIView
наUIImageview
в приведенном выше фрагменте кода, это сработает? - person freespace   schedule 30.03.2011