IOS消息机制之------Hit Testing 伪代码

本文通过实验详细探讨了iOS中Hit Testing的过程,包括Hit Test的递归顺序、用户交互影响及应用实例,如改变点击区域和事件透传。实验结果显示,Hit Test遵循视图添加的逆序,并且会忽略用户交互禁用的视图。总结指出,Hit-test得到的视图有优先处理触摸事件的权利,未处理则由响应链继续传递。
摘要由CSDN通过智能技术生成
写作原因

虽然官方文档上给出了Hit Testing的大略描述,但是发现很多同学在使用中还会有各种疑惑以及错误,而且任何自然语言的描述都比不上源代码更能让程序员信服,so~~

先上结果:
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
{
    if(self.hidden||self.userInteractionEnabled==NO||self.alpha<0.01)
    {
  /*此处见文档
      This method ignores view objects that are hidden, that have disabled user interactions, or have an alpha level less than 0.01.
      */
        return nil;
    }
    if (![self pointInside:point withEvent:event]) {
        return nil;//如果这个点不在本身处理范围内,返回nil
    }
    NSArray* sortedSubViews=[self subviews];/*对subview按照index由大到小排序,index为视图层级,0为添加的第一个视图*/;
    for (
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值