Почему мой кран не распознается? - PullRequest
2 голосов
/ 05 апреля 2011

Я создал небольшой пример проекта с пером, содержащим изображение. В своем коде контроллера вида я добавил распознаватель жестов к представлению изображения для обнаружения касаний. Но он никогда не вызывает метод-обработчик.

Вот заголовок:

#import <UIKit/UIKit.h>

@interface TapExperimentViewController : UIViewController {
    UIImageView *imageView;
}

@property (retain) IBOutlet UIImageView *imageView;

- (void)handleTap:(UIGestureRecognizer *)sender;

@end

А вот файл реализации:

#import "TapExperimentViewController.h"

@implementation TapExperimentViewController

@synthesize imageView;

- (void)dealloc {
    [imageView release];
    [super dealloc];
}

- (void)viewDidLoad {
    [super viewDidLoad];
    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]
                                   initWithTarget:self
                                   action:@selector(handleTap:)];
    [self.imageView addGestureRecognizer:tap];
    [tap release];
}

- (void)viewDidUnload {
    [super viewDidUnload];
    self.imageView = nil;
}

- (void)handleTap:(UIGestureRecognizer *)sender {
    if (sender.state == UIGestureRecognizerStateEnded) {
        NSLog(@"tap");
    }
}

@end

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

1 Ответ

5 голосов
/ 05 апреля 2011

Я сам не работал с жестами, но я знаю, что UIImageView s не разрешают взаимодействие с пользователем по умолчанию.

Новые объекты просмотра изображений настроены игнорировать пользовательские события по умолчанию. Если вы хотите обрабатывать события в Пользовательский подкласс UIImageView, вы должен явно изменить значение свойство userInteractionEnabled для ДА после инициализации объекта.

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