超出父视图可点击
2021-04-26 本文已影响0人
狗蛋的春天
要想监听整个发布按钮的点击,包括凸起部分点击也有反应,那么我是通过在自定义的父视图内部重写- (UIView
*)hitTest:(CGPoint)point withEvent:(UIEvent *)even方法来实现的
我们都知道,凸起按钮是自定义的父视图AAAA的子控件,默认情况下子控件尺寸如果超出父控件,那么超出的部分点击是没有反应的
hitTest这个方法就是专门返回一个处理响应事件最合适view的,一般情况下我们不实现这个方法,默认就是让系统帮我们去判断处理事件响应最合适的view,一旦我们想要改变一下这种情况,我们就需要通过重写这个方法
我们的需求是只要我们点击的point在凸起按钮的任何位置都可以有响应,那么我们首先需要判断这个point是否在凸起按钮自身上
[self convertPoint:point toView:self.upBtn]
这句代码就是将当前tabbar的触摸点转换坐标系,转换到凸起按钮的身上,它会生成一个新的点,然后我们通过 [self.upBtn
pointInside:newP
withEvent:event]方法判断如果这个新的点是在upBtn按钮身上,那么处理点击事件最合适的view就是upBtn,否则直接让系统帮我们处理点击事件就可以了
截屏2021-04-26 下午5.18.45.png
截屏2021-04-26 下午5.19.08.png