美文网首页
iOS 响应链

iOS 响应链

作者: 3a169b0787bc | 来源:发表于2016-08-18 15:57 被阅读94次

iOS开发 - 事件传递响应链
iOS 响应者链,事件的传递
事件传递之响应链
Cocoa Touch事件处理流程--响应者链
iOS事件响应链中Hit-Test View的应用
hitTest:withEvent:方法将会忽略隐藏(hidden=YES)的视图,禁止用户操作(userInteractionEnabled=YES)的视图,以及alpha级别小于0.01(alpha<0.01)的视图。如果一个子视图的区域超过父视图的bound区域(父视图的clipsToBounds 属性为NO,这样超过父视图bound区域的子视图内容也会显示),那么正常情况下对子视图在父视图之外区域的触摸操作不会被识别,因为父视图的pointInside:withEvent:方法会返回NO,这样就不会继续向下遍历子视图了。当然,也可以重写pointInside:withEvent:方法来处理这种情况。
注意:
hidden=YES
userInteractionEnabled=NO (imageView默认)
alpha级别小于0.01(alpha<0.01)的视图
子视图区域超过父视图的部分,因为父视图的pointInside:withEvent:方法会返回NO,这样就不会遍历子视图了。

记录两个方法
- (CGPoint)convertPoint:(CGPoint)point toView:(nullable UIView *)view; [aView convertPoint:point toView:bView];
讲point在aView里的坐标值 转换为到bView下的坐标。
正确调用 : point是aView上的一个点,现在转换到bView的坐标系上。

类似:- (CGPoint)convertPoint:(CGPoint)point fromView:(nullable UIView *)view;

- (CGRect)convertRect:(CGRect)rect fromView:(nullable UIView *)view; [bView convertRect:self.frame fromView: aView];
对于rect也是一样.
rect的值原本是相对于在aView的视图里,现在转换到bView下。其实size没变,只有origin变了。

类似- (CGRect)convertRect:(CGRect)rect toView:(nullable UIView *)view;

stackoverflow上有人提了这个问题,感觉说的很详细。点这里

相关文章

  • iOS 响应链

    iOS开发 - 事件传递响应链iOS 响应者链,事件的传递事件传递之响应链Cocoa Touch事件处理流程--响...

  • iOS响应者链

    iOS响应者链

  • 二、事件传递链和响应者链

    iOS触摸事件详解iOS开发-事件传递响应链 响应者链 UIResponser包括了各种Touch message...

  • 响应链

    iOS事件响应链中Hit-Test View的应用从iOS的事件响应链看TableView为什么不响应touche...

  • tableView 与collectionView嵌套 coll

    这里就要说到 iOS 的响应链iOS 的所有点击方法 都是用响应链 传递到最底层的 所以可以截取响应链 让coll...

  • iOS中对于响应链的理解

    对于响应链的理解: 在IOS中,有响应者链对事件进行响应,所有的响应类都是UIResponder的子类,响应者链是...

  • 深入浅出iOS事件机制

    深入浅出iOS事件机制事件传递:响应链事件传递响应链

  • iOS响应者链

    参考好文 iOS开发-事件传递响应链,用运行时分析 iOS事件传递:响应者链[译] http://www.jian...

  • UIView 和 CALayer

    从iOS的响应链开始说起 最近在看iOS 的响应链 看到了这样的关系 因为UIView 继承自 UIRespond...

  • ios响应者链

    iOS 响应者链 字数418 阅读41 评论0 喜欢3 响应者链 响应者链是一个响应者的连接序列,事件或者动作消息...

网友评论

      本文标题:iOS 响应链

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