3

我正在研究在UIPageViewController內具有可滑動表格單元格的項目。 UIPageViewController'sUIScrollView最初被禁用。當您滑動單元格時,它會通過UIPanGestureRecognizer緩慢顯示一個按鈕,並且當該按鈕完全顯示時,可滑動表格單元會向UIPageViewController(其代表)滾動以發送消息。iOS - 如何在UIPageViewController中設置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開始滾動,如果用戶還在進一步刷卡?我非常接近做這項工作。任何意見,將不勝感激。謝謝。

編輯:

我在我的頁面視圖控制器類中添加這行代碼到我的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點時,激活scrollView的啓用屬性,並禁用UIView上的觸摸,以允許我滾動到下一頁(就像SnapChat一樣)。不知道這是否有幫助,但我就是這麼做的!

相關問題