2012-03-16 122 views
0

我試圖禁用我遊戲的UIView的觸摸事件,但設置userInteractionEnabled = NO似乎沒有任何效果。這是我在App中唯一的觀點。userInteractionEnabled不禁用觸摸事件

如果我檢查isUserInteractionEnabled的視圖,它返回NO。

我通過我的UIViewController獲取我的-(void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event消息,而不是UIView。由於添加了根UIViewController,我不再獲得發送到UIView的觸摸事件。

我在這裏做錯了什麼?我會假設設置userInteractionEnabled = NO將停止所有觸摸事件的發生。

+0

嘗試設置也viewController.view.userInteractionEnabled = NO; – 2012-03-16 17:53:49

回答

0

對於某些組件,如果取消選中界面構建器中的用戶交互啓用,組件實際上將忽略該設置。 UITextView是這種行爲的一個例子。我發現這個問題的方法是在awakeFromNib方法和initWithFrame方法中將userInteractionEnabled顯式設置爲NO。子類示例;

-(void) awakeFromNib { 
    [self setup]; 
} 
-(id) initWithFrame:(CGRect) frame { 
    self = [super initWithFrame: frame]; 
    if(self) { 
     [self setup]; 
    } 
} 
-(void) setup { 
    self.userInteractionEnabled = NO; 
}