美文网首页
关于userInteractionEnabled原理及应用

关于userInteractionEnabled原理及应用

作者: 水灵芳蕥 | 来源:发表于2018-03-07 14:54 被阅读25次

    一、原理

    首先,userInteractionEnabled是属于IOS message消息机制中的一个环节,它代表着是否处理传过来的objc_msgSend()消息事件.

    当userInteractionEnabled背置为NO时,表示不响应objc_msgSend()消息事件,当userInteractionEnabled背置为YES时,则正常响应Touch、Move等事件。需要关注的是,在IOS中个UI控件默认值并不相同:

    UIImageView 默认的userInteractionEnabled是NO;

    UILabel默认 userInteractionEnabled是NO;

    UIView的userInteractionEnabled默认是YES。

      当一个视图对象的userInteractionEnabled被置为NO,则这个视图对象就被从响应者链里移除,它所负责响应的事件全部无效。所以他的subviews事件到此都会被丢弃。


    二、应用

    userInteractionEnabled属性可以设置视图是否可以接收到用户的事件和消息,是否可以跟用户交互,如果不想视图接收事件消息,设置为no就可以了,比如说:当一个父视图中包含一个子视图a时,同时又包含另外一个视图b;但是b被a覆盖住了,这样b就不能相应事件,这时候设置a的userInteractionEnabled为no,b的userInteractionEnabled为yes,b就可以接收到消息事件了

    三、遇到的问题

    在cell中,有个label,给label添加手势,不会响应,将label的userInteractionEnabled设为YES就可以 了。

    相关文章

      网友评论

          本文标题:关于userInteractionEnabled原理及应用

          本文链接:https://www.haomeiwen.com/subject/xevjfftx.html