2012-03-16 2 views
0

Я пытаюсь отключить события касания для UIView моей игры, но настройка userInteractionEnabled = NO не имеет никакого эффекта. Это единственное представление, которое у меня есть в приложении.userInteractionEnabled не отключает события касания

Если я проверяю isUserInteractionEnabled для просмотра, он возвращает NO.

Я получаю сообщения -(void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event через мой UIViewController, а не UIView. Начиная с добавления корневого UIViewController, я больше не получаю события касания, отправленные в UIView.

Я делаю что-то неправильно здесь? Я бы предположил, что установка userInteractionEnabled = NO остановит все события касания от происходящего.

+0

Попробуйте установить также viewController.view.userInteractionEnabled = NO; –

ответ

0

Для некоторых компонентов, если вы снимите флажок User Interaction Enabled в интерфейсном построителе, компонент фактически проигнорирует эту настройку. Пример этого поведения - UITextView. Способ, который я нашел вокруг проблемы, - явно указать userInteractionEnabled на NO в методе awakeFromNib и метод initWithFrame. Пример подкласса;

-(void) awakeFromNib { 
    [self setup]; 
} 
-(id) initWithFrame:(CGRect) frame { 
    self = [super initWithFrame: frame]; 
    if(self) { 
     [self setup]; 
    } 
} 
-(void) setup { 
    self.userInteractionEnabled = NO; 
} 
Смежные вопросы