首页 > 代码库 > 关于userInteractionEnabled的属性的理解

关于userInteractionEnabled的属性的理解

userInteractionEnabled


A Boolean value that determines whether user events are ignored and removed from the event queue.

译:一个布尔值,它决定了是否用户触发的事件被该视图对象忽略和把该视图对象从事件响应队列中移除。


@property(nonatomic, getter=isUserInteractionEnabled) BOOL userInteractionEnabled

userInteractionEnabled的getter方法是isUserInteractionEnabled

我们可以通过isUserInteractionEnabled方法,得到userInteractionEnabled的布尔值。


Discussion
When set to NO, user events—such as touch and keyboard—intended for the view are ignored and removed from the event queue. When set to YES, events are delivered to the view normally. The default value of this property is YES.

译:当视图对象的userInteractionEnabled设置为NO的时候,用户触发的事件,如触摸,键盘等,将会被该视图忽略(其他视图照常响应),并且该视图对象也会从事件响应队列中被移除。 当userInteractionEnabled设为YES时,则事件可以正常的传递给该视图对象。 userInteractionEnabled的属性默认值就是YES。

ps:响应者链是能够响应事件的对象组成的链,事件在该链上传递,最终结果事件或被处理或被抛弃。所以一个对象在不在响应者链里是其能否响应事件的首要前提条件!


During an animation, user interactions are temporarily disabled for all views involved in the animation, regardless of the value in this property. You can disable this behavior by specifying the UIViewAnimationOptionAllowUserInteraction option when configuring the animation.

译:在播放动画的时候,不论userInteractionEnabled的值是YES还是NO,用户交互会被临时设置为不支持交互的状态。

如果在播放动画的时候,你想让对象依然保持可交互状态,那么你需要设置动画的UIViewAnimationOptions的属性值为UIViewAnimationOptionAllowUserInteraction。


Note: Some UIKit subclasses override this property and return a different default value. See the documentation for that class to determine if it returns a different value.

注意:一些UIKit的子类重写了这个属性,而导致返回不同的默认值。具体的你 需要看所选择的类的文档,看是否userInteractionEnabled被设置了不同的默认返回值。


Declared In UIView.h