- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event;
рекурсивно вызывает -pointInside:withEvent:
. точка находится в координатах кадра
Если вы переопределите это в фоновом режиме, вы можете указать, какое подпредставление получит удар - вы можете быть ленивым и просто спросить каждое из ваших подпредставлений, вернут ли они ему «да», и никогда не вернутся сами (верните ноль, если они все вернутся. ноль). Что-то вроде:
UIView *hitView = nil;
NSArray *subviews = [self subviews];
int subviewIndex, subviewCount = [subviews count];
for (int subviewIndex = 0; !hitView && subviewIndex < subviewCount; subviewIndex++) {
hitView = [[subviews objectAtIndex:subviewIndex] hitTest:point withEvent:event];
}
return hitView;