Другой подход заключается в переопределении метода UIScrollView
:
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
.
Возвращение YES
позволит пользователю прокручивать. Возвращать NO
не буду.
ПРИМЕЧАНИЕ: Это отключит все касания для любых видов, встроенных в UIScrollView
, которым pointInside
возвращает NO
. Полезно, если область, из которой вы не хотите прокручивать, не взаимодействует.
Этот пример позволяет UIScrollView
прокручивать, только когда пользователь прокручивает на UITableView
. (A UITableView
и два UIViews
встроены в UIScrollView
)
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event {
for (UIView *subview in self.subviews) {
if ([subview pointInside:[self convertPoint:point toView:subview] withEvent:event] && ![subview isKindOfClass:[UITableView class]]) {
return NO;
}
}
return YES;
}