ios – UIPageViewController第二和第三页闪烁为白色

ios – UIPageViewController第二和第三页闪烁为白色,第1张

概述我有一个pageviewcontroller,但当我滑到第二页时,它会显示正确的控制器一瞬间,然后屏幕变白,如果我然后再次滑动它将显示应该是.它也有4页而不是我想要的3页. 这是一个演示问题的视频:https://streamable.com/i1inq 索引如下: profileController.index = 0 discoverController.index = 1 matchCo 我有一个pagevIEwcontroller,但当我滑到第二页时,它会显示正确的控制器一瞬间,然后屏幕变白,如果我然后再次滑动它将显示应该是.它也有4页而不是我想要的3页.

这是一个演示问题的视频:https://streamable.com/i1inq

索引如下:

profileController.index = 0 discoverController.index = 1 matchController.index = 2func pageVIEwController(_ pageVIEwController: UIPageVIEwController,vIEwControllerAfter vIEwController: UIVIEwController) -> UIVIEwController?{    if index == 0    {        index = discoverController.index        return discoverController    }    else if index == 1    {        index = matchController.index        return matchController    }    return nil}

编辑:我还应该提到初始控制器是profileController,因此当应用程序运行时索引从0开始.

解决方法 更新

您只需使用index属性修改代码自定义viewcontroller:

func pageVIEwController(_ pageVIEwController: UIPageVIEwController,vIEwControllerAfter vIEwController: UIVIEwController) -> UIVIEwController?{    let index = (vIEwController as? MyCustomVCWithIndexForPageVIEwController).index    if index == 0    {        index = discoverController.index        return discoverController    }    else if index == 1    {        index = matchController.index        return matchController    }    return nil}

原版的

您不应该缓存与pagevIEwcontroller相关的参数.
UIPageVIEwController有时会预加载您的页面以获得更好的性能.

例如:

您有3页要显示.

您现在显示第一页首页.

然后滚动到第二个视图. vIEwControllerAfter与第一个vIEwcontroller的vIEwController一起调用,用于请求第二个vIEwcontroller.

并且vIEwControllerAfter再次使用第二个vIEwcontroller的vIEwController调用,以请求第三个vIEwcontroller(preload).

在这种情况下,如果您缓存索引,将导致不可预测的结果.

总结

以上是内存溢出为你收集整理的ios – UIPageViewController第二和第三页闪烁白色全部内容,希望文章能够帮你解决ios – UIPageViewController第二和第三页闪烁为白色所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1108182.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存