Я создаю контроллер представления контейнера, где контроллеры дочерних представлений показаны как постраничный scrollView. В этом контроллере контейнера я хочу изменить между страницами, прокручивающимися горизонтально, двумя пальцами. Таким образом, я использовал UIScrollView, и я поставил его так:Пользовательский контейнер с использованием UIScrollView двумя пальцами
self.scrollView.showsHorizontalScrollIndicator = NO;
self.scrollView.showsVerticalScrollIndicator = NO;
self.scrollView.delegate = self;
[self.scrollView setContentOffset:[self rectForPage:1].origin];
for (UIGestureRecognizer *gestureRecognizer in self.scrollView.gestureRecognizers) {
if ([gestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]]) {
UIPanGestureRecognizer *panGR = (UIPanGestureRecognizer *) gestureRecognizer;
panGR.minimumNumberOfTouches = 2;
}
}
Я также внедрили метод - (void)scrollViewDidScroll:(UIScrollView *)sender
, чтобы избежать вертикального скроллинга
- (void)scrollViewDidScroll:(UIScrollView *)sender {
CGFloat pageWidth = self.scrollView.frame.size.width;
int page = floor((self.scrollView.contentOffset.x +pageWidth/2)/pageWidth);
self.pageControl.currentPage = page;
[self.scrollView setContentOffset: CGPointMake(self.scrollView.contentOffset.x, 0)];
}
Теперь проблема заключается в том, что childViewControllers подвиды не может получать штрихи от пользователя. Я хочу, чтобы одно касание было передано с помощью иерархии представлений. Я прочитал о подклассе UIScrollView, чтобы перезаписать метод - (BOOL)touchesShouldBegin:(NSSet *)touches withEvent:(UIEvent *)event inContentView:(UIView *)view
, но он вызывается только в том случае, если subviews является UIControl. Как я могу это сделать?
Цель состоит в том, что это ChildViewControllers есть UIButtons внутри и ScrollViews, которые должны быть использованы с singleTouches
Спасибо за ответ, но это не так. Работа ... Даже если я всегда вернусь, кнопки не реагируют на просмотр контроллера детского вида :( – Jpellat