3

Я работаю над проектом, который имеет ячейки с возможностью прокрутки в пределах UIPageViewController. Первоначально отключен UIPageViewController'sUIScrollView. Когда вы прокручиваете ячейку, она медленно открывает кнопку с помощью UIPanGestureRecognizer, и когда кнопка полностью раскрывается, ячейка таблицы с возможностью прокрутки отправляет сообщение UIPageViewController (ее делегату), чтобы включить ее прокрутку.iOS - Как настроить UIScrollView в UIPageViewController для запуска прокрутки после повторного включения

Когда прокрутка включена, мне нужно , чтобы начать прокрутку, пока пользователь по-прежнему проводит пальцем. Эта функциональность похожа на Snapchat, где вы прокручиваете прямо, чтобы пообщаться с другом. Но он не запускает прокрутку, даже если включен режим UIScrollView. Пользователь должен отвести свой палец от экрана, а затем снова включить его, чтобы снова прокрутить, чтобы начать прокрутку до следующего вида. UIPageViewController имеет этот код, чтобы включить и отключить это прокрутки:

+(void)enableScrolling 
{ 
    NSLog(@"supposed to enable"); 
    [myScrollView setScrollEnabled:YES]; 
    if (myScrollView.isScrollEnabled == YES) { 
     NSLog(@"Scroll view is enabled"); 
    } 
    //[myScrollView.panGestureRecognizer setState:(UIGestureRecognizerState *) UIGestureRecognizerStateBegan]; 
} 

+(void)disableScrolling 
{ 
    NSLog(@"supposed to disable"); 
    [myScrollView setScrollEnabled:NO]; 
    if (myScrollView.isScrollEnabled == NO) { 
     NSLog(@"Scroll view is disabled"); 
    } 
} 

мне интересно, если я что-то должен сказать UIPageViewController'sUIPanGestureRecognizer начать прокрутку, если пользователь еще ударяя дальше? Я очень близок к этой работе. Любой совет будет принят во внимание. Благодарю.

EDIT:

Я добавил эту строку кода в мой метод enableScrolling в моей странице класса контроллера представления:

[myScrollView setContentOffset:[myScrollView.panGestureRecognizer translationInView:myPageViewController.view]]; 

Это мой обновленный метод:

+(void)enableScrolling 
{ 
    NSLog(@"supposed to enable"); 
    [myScrollView setScrollEnabled:YES]; 
    if (myScrollView.isScrollEnabled == YES) { 
     NSLog(@"Scroll view is enabled"); 
     [myScrollView setContentOffset:[myScrollView.panGestureRecognizer translationInView:myPageViewController.view]]; 
    } 
} 

Мои понимание заключается в том, что установка смещения содержимого прокрутки к текущей позиции, к которой прикасается, должна снова активировать прокрутку, но все это делает весь экран темным.

Любые идеи о том, что я могу делать неправильно?

+0

Вот отличный пример репо для этой задачи: https://github.com/goktugyil/EZSwipeController – Esqarrouth

ответ

0

Интересно, что вы так делаете. У меня есть шаблон приложения, который я создаю, и имею ту же самую функцию, но я решил поместить UIView над tableViewCells, а затем отобразить это мнение на ощупь, сдвинув его вправо и просматривая содержимое под ним. когда я доберусь до определенной точки contentOffSet, я активирую свойство enabled scrollView и отключу прикосновение к UIView, позволяя мне перейти на следующую страницу (точно так же, как SnapChat). Не уверен, что это помогает, но вот как я это делаю!

Смежные вопросы