У меня есть 2 вида в качестве подзонов основного вида.iOS 7 - прозрачный распознаватель жестов UIView
основной вид | | --- view A | | --- вид B
И у меня есть кнопка с рамкой (0, 0, 50, 50) на вид A, и кнопка с рамкой (200, 200, 50, 50) в поле зрения B.
View A и вид B имеют нулевой backgroundColor (поэтому они оба прозрачные).
И все виды имеют одинаковую рамку.
Я хочу, чтобы иметь возможность нажимать обе кнопки, но только кнопка из вида B можно щелкнуть. Это не относится к iOS 6.
Любые идеи?
Гадкое решение:
Я нашел решение моей проблемы, все, что нужно сделать, это мой взгляд и вид B будут PassThroughUIView, но это очень некрасиво решение, мне интересно, если есть лучше, один, который не включает изменение класса моего представления.
@implementation PassThroughUIView
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event {
for (UIView *v in self.subviews) {
CGPoint localPoint = [v convertPoint:point fromView:self];
if (v.alpha > 0.01 && ![v isHidden] && v.userInteractionEnabled && [v pointInside:localPoint withEvent:event])
return YES;
}
return NO;
}
@end
Просто проверьте перекрывается любой вид по , изменив цвет фона в представлении. –
Вы добавляете любой распознаватель жестов (UITapGestureRecognizer или любой)? – karthika
Это точка, вид A перекрывает основной вид, а вид B - перекрывающийся вид A (все они имеют одинаковый размер), и я все еще хочу, чтобы это сработало. –