草庐IT

iphone - 加速 UIPageViewController

coder 2024-01-10 原文

我有一个包含多个页面的 UIPageViewController。每个页面都是相同的 View Controller ,但会跟踪页码并显示 PDF 的正确页面。问题是每个 PDF 页面都需要在 curl 效果起作用之前加载和绘制(您在屏幕上滑动手指,加载之前没有任何反应)。关于如何加快速度或预加载下一页的任何想法?感谢您的帮助。

最佳答案

我现在用的app也有类似的问题。我的解决方案是保留对加载的上一个和下一个 Controller 的引用作为我的 Root View Controller 的属性,然后从那里加载 View 。我不使用 PageViewController,因为客户坚持认为它必须看起来像 FlipBoard...所以我还缓存了生成的 GLTexture。它应该以类似的方式工作,只是在加载当前页面时存储下一页和上一页,然后在您的“loadNextPage”或任何方法中传递该 Controller 。

编辑:这是我项目中的一个示例(我已简化)

First Load(NH 是我程序的前缀,所以你需要替换你自己的类):

NHViewController *child = [NHViewController loadPageNum:actualNum];
[self.view addSubview:child.view];
self.curController = child;
child.delegate = self;
[self initializePages:NHPageLoadBoth];

后续加载(翻页):

    NHPageLoadSettings pageToLoad = NHPageLoadNext;
    if(direction == NHPageDirectionNextPage)
    {
        self.prevController = self.curController;
        self.curController = self.nextController;
        self.nextController = nil;
    }
    else
    {
        self.nextController = self.curController;
        self.curController = self.prevController;
        self.prevController = nil;
        pageToLoad = NHPageLoadPrev;
    }

    UIView *nextView = self.curController.view;
    [self.view addSubview:nextView];
    [mCurView removeFromSuperview];
    mCurView = nextView;

    [self initializePages:pageToLoad];

初始化页面:

- (void)initializePages:(NHPageLoadSettings)pagesToLoad
{
    if(pagesToLoad & NHPageLoadNext)
    {
        NSUInteger nextPageNum = [self.curController.pageNum unsignedIntegerValue]+1;
        self.nextController = [NHViewController loadPageNum:nextPageNum];
    }
    if(pagesToLoad & NHPageLoadPrev)
    {
        NSUInteger prevPageNum = [self.curController.pageNum unsignedIntegerValue]-1;
        self.prevController = [NHViewController loadPageNum:prevPageNum];
    }
}

这样,您将始终准备好邻居页面。然后,无需在 UIPageViewController 中检索下一页或上一页的方法中实例化它们,只需传递 self.nextController 或 self.prevController。

关于iphone - 加速 UIPageViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9797866/

有关iphone - 加速 UIPageViewController的更多相关文章

  1. ruby-on-rails - 加速 RSpec 请求规范的方法 - 2

    我有33个规范以大约5秒的速度运行,以这种速度运行会导致测试套件变慢。我追踪到请求规范(4秒以上),因为模型规范只用了一小部分时间。我已经检查过,我的请求规范没有任何过于复杂或不必要的东西,所以我不知道该去哪里让它们更快,而不是只在推送代码之前运行它们以确保一切正常.加快请求规范的最佳方法是什么? 最佳答案 我使用Spork来加速我的测试。它保持整个环境加载以赢得时间。看看这个博客:http://ykyuen.wordpress.com/2010/12/14/rails-running-rspec-with-spork-test-s

  2. ruby-on-rails - 如何使用 ruby​​ 加速大型 CSV 的处理 - 2

    对于一个项目,我需要解析一些非常大的CSV文件。一些条目的内容存储在MySQL数据库中。我正在尝试使用多线程来加快速度,但到目前为止,这只会减慢速度。我解析了一个CSV文件(最大10GB),其中一些记录(20M+记录CSV中的大约5M)需要插入到MySQL数据库中。为了确定需要插入的记录,我们使用Redis服务器和包含正确ID/引用的集合。由于我们在任何给定时间处理大约30个这样的文件,并且存在一些依赖关系,我们将每个文件存储在一个Resque队列中,并让多个服务器处理这些(优先级)队列。简而言之:classWorkerdefself.perform(file)CsvParser.ea

  3. ruby - 如何加速sass编译? - 2

    在编译sass时,我的编译时间往往很长(在当前的中型项目中长达9秒),而我的笔记本电脑速度非常快,而且带有ssd。我通过grunt-contrib-sass使用sassass一个grunt任务,但是直接从命令行运行sass时编译时间差别不大。Libsass另一方面,同一个项目只需要大约100毫秒,但它不支持我需要的几个功能。所以我想知道我有什么可能加快编译过程?拆分文件当然有帮助,但是还有其他副作用更小的方法吗?编辑:此外,我也很乐意解释libsass为什么比ruby​​-sass快得多。不知何故,我非常怀疑这只是因为ruby​​比C/C++慢得多。还是我错了?编辑2:当我使用Ubun

  4. iphone - 扩展 restful_authentication/AuthLogic 以支持匿名 iPhone 的延迟登录的最佳方法是什么? - 2

    我正在构建一个与RubyonRails后端对话的iPhone应用程序。RubyonRails应用程序还将为Web用户提供服务。restful_authentication插件是提供快速和可定制的用户身份验证的绝佳方式。但是,我希望iPhone应用程序的用户在新列中存储一个由手机的唯一标识符([[UIDevicedevice]uniqueIdentifier])自动创建的帐户。稍后,当用户准备好创建用户名/密码时,帐户将更新为包含用户名和密码,iPhone唯一标识符保持不变。用户在设置用户名/密码之前不能访问该网站。然而,他们可以使用iPhone应用程序,因为该应用程序可以使用它的标识符

  5. ruby - 如何加速 Jekyll/Octopress 的生成? - 2

    我使用Octopress作为我的博客引擎。这是完美的。但是如果帖子很多,比如400+,生成速度就很慢了。那么,有什么方法可以加快Jekyll/Octopress的生成速度吗?谢谢。 最佳答案 显然,如果您只处理一篇文章,则无需等待整个站点生成。您正在寻找的是rakeisolate[partial_post_name]任务。使用rakeisolate,您可以仅“隔离”您正在处理的帖子,并将所有其他帖子移至source/_stash文件夹。partial_post_name参数只是帖子文件名中的一些单词。例如,如果我想将帖子与前面的示例

  6. iphone - 设计和 Rails 3 中的 http 身份验证 - 2

    我有一个使用deviseonrails3的应用程序。我想启用http身份验证,以便我可以从iPhone应用程序向我的网络应用程序进行身份验证。如何从我的iPhone应用程序进行身份验证以进行设计?这安全吗?还是我应该进行不同的身份验证? 最佳答案 从设计的角度来看,您有3个选择:1)使用基本的http身份验证:您的iPhone应用程序有一个secretkey-这是在您的iPhone应用程序代码中烘焙的-用于对网络应用程序的每个请求进行身份验证。Google搜索:“设计基本的http身份验证”2)您可以通过在您的iPhone应用程序中

  7. iphone - 在没有 Mac 的情况下开发 iPhone 应用程序? - 2

    这个问题在这里已经有了答案:关闭13年前。PossibleDuplicates:HowcanIdevelopforiPhoneusingaWindowsdevelopmentmachine?我想为我妻子的手机构建一个iPhone应用程序,但我对购买Mac作为一次性工作的开发平台不感兴趣。应用程序:应该在iPhone上独立运行(即没有网络连接)完全可以接受使用iPhoneJavascript库之一创建的GUI会做一些数据库IO来读取和更新数据没有商业值(value),永远不会被任何人使用这是我的想法:越狱iPhone在iPhone上安装Ruby+Sinatra使用Sinatra编写应用程

  8. iphone - iPhone 原生应用的测试驱动设计 - 2

    我正在试验iPhoneSDK并在Nic博士的rbiPhoneTest项目中做一些TDD。我想知道有多少人(如果有的话)成功地使用了这个或任何其他iPhone/Cocoa测试框架?更重要的是,我想知道如何最好地断言专有的二进制请求/响应协议(protocol)。这个想法是通过网络发送二进制请求并接收二进制响应。请求和响应是使用byteand'ing和or'ing创建的。我正在使用黄金副本模式来测试我的请求。这是我到目前为止所拥有的。不要笑,因为我是ObjectiveC和Ruby的新手:requireFile.dirname(__FILE__)+'/test_helper'require'

  9. iphone - 如何从视频中提取方向信息? - 2

    在网络上浏览了大量文档后,iPhone似乎总是以480x360的纵横比拍摄视频,并在视频rails上应用变换矩阵。(480x360可能会改变,但对于给定设备而言始终相同)这是一种在iOS项目中修改ffmpeg源代码并访问矩阵http://www.seqoy.com/correct-orientation-for-iphone-recorded-movies-with-ffmpeg/的方法这是在iOS-4中查找转换矩阵的更清晰的方法Howtodetect(iPhoneSDK)ifavideofilewasrecordedinportraitorientation,orlandscape.

  10. javascript - 是否允许将javascript代码下载到iPhone - 2

    我有一个混合应用程序,它基本上是一个从UIWebview内的应用程序文件夹运行的网站。问题是我打算通过从互联网下载整个网站然后替换旧网站来更新我的网站。今天发现苹果现在提供了AppStoreReviewGuidelines等规则:2.7Appsthatdownloadcodeinanywayorformwillberejected2.8Appsthatinstallorlaunchotherexecutablecodewillberejected因为我的网站有html、css和javascript,这是否意味着我的应用程序将被拒绝或有机会被接受?你对此有何看法?

随机推荐