其实实际面试关于这块问的还可以更深
来源:3-3 UI事件传递&响应 相关面试问题

xq_aaron
2019-02-26
其实实际面试关于这块问的还可以更深,1.如何实现透层 2.子视图范围覆盖父视图,那么点击超出父视图地方,子视图可以响应事件否3.各个子视图重叠,重叠区域事件响应如何等等。同时老师要是可以按照事件的下发和事件的响应两条线讲可能会更清晰。
写回答
2回答
-
卷王Charles
2021-10-10
回答下JerseyCafe关于楼主第一个问题的一个具体案例,问题三感觉和问题一类似,根据业务场景返回响应的视图即可
点击下图中红色箭头所指的区域,如果让视图2(黄色区域)来响应,需要重写视图1的hitTest方法来返回视图2。代码如下:
//View1中 hitTest - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event { __block UIView *view = nil; [self.subviews enumerateObjectsWithOptions:NSEnumerationReverse usingBlock:^(__kindof UIView * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { if ([obj isKindOfClass:[View2 class]] && [obj pointInside:point withEvent:event]) { view = obj; } }]; return view; }
00 -
xq_aaron
提问者
2019-02-26
其实老师讲解的是很清晰的,但是可能部分同学没有办法做到学以致用,所以举例说明几个也更好,我也是分析完了,写了demo才确认是如何的,希望对课程有帮助。
012019-03-14
相似问题