美文网首页Swift开发iOS开发
使用 UIPageViewController 进行翻页时出现的

使用 UIPageViewController 进行翻页时出现的

作者: Stormstout | 来源:发表于2018-10-30 00:07 被阅读0次

    使用UIPageViewController时进行快速翻页,系统就会出现如下warning

    2018-10-29 23:57:11.443910+0800 HistoricalLiterature[3117:832888] Unbalanced calls to begin/end appearance transitions for <ReaderViewController: 0x15de18a40>.
    

    原因:上次动画还没结束,然后又开始了新的动画。 这样就导致不能成功切换页面,而是一个白色无内容的页面.(我的是出现上个页面的内容)
    解决方案:动画执行过程中,关闭翻页控制器视图的用户交互;动画执行完毕之后再次打开。

    /**
         *  @brief 转场动画即将开始
        *
        *  @param pageViewController     翻页控制器
        *  @param pendingViewControllers 即将展示的控制器
        */
    - (void)pageViewController:(UIPageViewController *)pageViewController willTransitionToViewControllers:(NSArray<UIViewController *> *)pendingViewControllers {
        // 转场动画未执行完,关闭用户交互
        pageViewController.view.userInteractionEnabled = NO;
    }
    
    /**
     *  @brief 该方法会在 UIPageViewController 翻页效果出发之后,尚未完成时执行
     *
     *  @param pageViewController      翻页控制器
     *  @param finished                动画完成
     *  @param previousViewControllers 前一个控制器(非当前)
     *  @param completed               转场动画执行完
     */
    - (void)pageViewController:(UIPageViewController *)pageViewController didFinishAnimating:(BOOL)finished previousViewControllers:(NSArray *)previousViewControllers transitionCompleted:(BOOL)completed
    {
        if (completed && finished) {                //这里需要注意的是.如果用用户翻页未完成 又回来了将,不进入判断,这里看需求注释
            // 转场动画完成,开启用户交互
            pageViewController.view.userInteractionEnabled = YES;
        }
    }
    

    参考 UIPageViewController

    相关文章

      网友评论

        本文标题:使用 UIPageViewController 进行翻页时出现的

        本文链接:https://www.haomeiwen.com/subject/jmhwtqtx.html