美文网首页
iOS面试题--响应链之同时响应

iOS面试题--响应链之同时响应

作者: LV大树 | 来源:发表于2021-05-24 11:47 被阅读0次

    响应链,在中级高级开发中应该是个常见问题。而本人常常答非所问,致使每次名落大厂。
    下面是个面试题,如何使响应链上的两个相邻的视图同时响应一次触摸。

    响应链的传递:从内到外还是从外到内。?我这里是不会回答的,因为我说不清。

    但是同时响应,我倒是有个方案。
    在最外层的hitTest:withEvent内加上一个BOOL标记。每次触发置反,正则返回self,反则返回nill。返回nil的时候,响应链传递到下一级。

    DemoView
    {
    BOOL bJump;//置反标记
    }
    ...
    
    -(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event{      
            bJump = !bJump;
            if (bJump) {
                return nil;
            }
            return self;//[super hitTest:point withEvent:event]; 
    }
    ...
    

    诸位在适应自己的场景自行修改。上面提供的思路仅供参考。
    欢迎留言指正。

    我去,我刚发完就要反悔了。

    上面完全跑不通。
    看来只有一个思路了。block大法。

    
    -(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event{      
            bJump = !bJump;
            if (bJump) {
                return nil;
            }
    //在此处插入block
    if(yourblock){yourblock();}
            return self;//[super hitTest:point withEvent:event]; 
    }
    

    但此处的弊端很明显,不能使用touchBegan 、moved、ended来获取精确的point.

    布局代码 Log

    可以看出已经同时响起两个View了。
    求大神留言吧。

    相关文章

      网友评论

          本文标题:iOS面试题--响应链之同时响应

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