Я работаю над проектом, который имеет ячейки с возможностью прокрутки в пределах UIPageViewController
. Первоначально отключен UIPageViewController's
UIScrollView
. Когда вы прокручиваете ячейку, она медленно открывает кнопку с помощью 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's
UIPanGestureRecognizer
начать прокрутку, если пользователь еще ударяя дальше? Я очень близок к этой работе. Любой совет будет принят во внимание. Благодарю.
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]];
}
}
Мои понимание заключается в том, что установка смещения содержимого прокрутки к текущей позиции, к которой прикасается, должна снова активировать прокрутку, но все это делает весь экран темным.
Любые идеи о том, что я могу делать неправильно?
Вот отличный пример репо для этой задачи: https://github.com/goktugyil/EZSwipeController – Esqarrouth