Я читал различные темы по этому вопросу, но ни одна не дала мне точное решение, в котором я нуждаюсь, но они довольно близко подобрали меня
У меня есть верхний UIViewController, который содержит UIScrollingView подкачки (созданный через XIB)
UIScrollingView загружает массив фиктивных контроллеров представления, которые меняются местами для различных контроллеров представления, когда пользователь пролистывает страницы.
В одном из этих подпредставлений есть несколько ползунков - обычная проблема: если пользователь слегка пропускает ползунок, он вместо этого прокручивает страницу.
В рамках подпредставления я поместил UIView за ползунками, частично закрывающими экран: 'uiviewblocker'
Идея состоит в том, что этот 'блокировщик uiview' использует любые касания в непосредственной области вокруг ползунков, но пролистывания вне uiview обрабатываются родительским UIViewController. Я поместил UIView 'uiviewblocker' в дубликат UIViewController 'MyView', чтобы я мог его обнаружить.
Я дошел до ...
Родительский UIScrollView:
scrollView.delaysContentTouches = NO;
Подвид UIViewController
-(void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event {
NSLog(@"touchesBegan");
//[self.nextResponder touchesBegan: touches withEvent:event];
UIView *touchView = [[touches anyObject] view];
if ([touchView isKindOfClass:[MyView class]]) {
NSLog(@"funky shit");
[super touchesBegan:touches withEvent:event];
//[self.delegate touchesBegan:touches withEvent:event];
//[self touchesBegain:touches withEvent:event]; // View does not respond: crashes
//UIView *parent = self.view.superview;
//[parent setCanCancelContentTouches:YES]; // UIView does not respond
//UIScrollView * parentScrollView = (UIScrollView*)self.superview; // Superview not in structure
} else {
NSLog(@"normal shit");
}
}
Так что теперь я могу определить, когда пользователь касается области безопасности UIview, проверяя его класс «MyView», но я не могу понять, как сказать родительскому UIScrollView прервать или просто коснуться тут же