userInteractionEnabled未禁用触摸事件

时间:2012-03-16 16:47:26

标签: ios

我正在尝试为我的游戏的UIView禁用触摸事件,但设置userInteractionEnabled = NO似乎没有任何效果。这是我在App中唯一的观点。

如果我检查isUserInteractionEnabled视图,则返回NO。

我通过我的UIViewController获取了-(void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event消息,而不是UIView。由于添加了根UIViewController,我不再获得发送到UIView的触摸事件。

我在这里做错了吗?我认为设置userInteractionEnabled = NO会阻止所有触摸事件的发生。

1 个答案:

答案 0 :(得分: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;
}