我正在开发一个在UIPageViewController
. UIPageViewController's
UIScrollView
最初是禁用的。当您滑动单元格时,它会通过 a 缓慢地显示一个按钮UIPanGestureRecognizer
,当按钮完全显示时,Swipeable Table Cell 会向UIPageViewController
(其代表)发送一条消息以启用其滚动。
启用滚动后,我需要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
用户仍在进一步滑动,我是否必须以某种方式告诉开始滚动?我非常接近完成这项工作。任何意见,将不胜感激。谢谢。
编辑:
我已将这行代码添加到我的页面视图控制器类中的 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]];
}
}
我的理解是,将滚动视图内容偏移设置为被触摸的当前位置应该会使滚动再次处于活动状态,但这所做的只是让我的整个屏幕变暗。
关于我可能做错了什么的任何想法?