У меня есть простая - тривиальная - UIView родительская / дочерняя иерархия.Один из родителей (UIView).Один ребенок (UIButton).Границы родителей меньше, чем границы детей, так что часть ребенка выходит за пределы рамки его родителя.
Вот проблема: те части ребенка, которые находятся вне bbox родительского элемента, не получают прикосновения.Только касание в пределах bbox родительского элемента позволяет дочерней кнопке получать прикосновения.
Может кто-нибудь предложить исправление / обходной путь?
ОБНОВЛЕНИЕ
Для тех, кто задает этот вопрос, вот решение, которое я реализовал в результате самого превосходного ответа @Bastians:
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event {
BOOL isInside = [super pointInside:point withEvent:event];
// identify the button view subclass
UIButton *b = (UIButton *)[self viewWithTag:3232];
CGPoint inButtonSpace = [self convertPoint:point toView:b];
BOOL isInsideButton = [b pointInside:inButtonSpace withEvent:nil];
if (isInsideButton) {
return isInsideButton;
} // if (YES == isInsideButton)
return isInside;
}