【问题标题】:problem when swipe using very fast快速滑动时出现问题
【发布时间】:2011-01-31 07:09:12
【问题描述】:

我正在开发一个 pdf 阅读器,我必须在手指滑动时加载 pdf 书的每一页。对于每次滑动,我都会增加一页,如果我缓慢滑动,它工作正常。如果滑动速度如此之快以至于崩溃,它根本不起作用。

大家好,我用 NSobject 类引用解决了上述问题,它只有两行..

[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(loadPagesAccordingToCurrentOrientation) object:nil];
[self performSelector:@selector(loadPagesAccordingToCurrentOrientation) withObject:nil afterDelay:0.5];

【问题讨论】:

  • 您的代码格式已损坏。你介意花时间修复它吗?
  • 如果您不知道如何在 SO 上 format lines as code(看起来过去,其他人为您做过),您可以通过将行缩进四个空格来做到这一点。编辑器工具栏中的“{}”按钮会为您执行此操作。编辑您的问题并尝试一下。单击编辑器工具栏中的橙色问号以获取有关格式设置的更多信息和提示。
  • ... 另外,不要多次发布同一个问题。阅读 SO 常见问题解答,了解更多关于 SO 的结构以及您应该如何使用它的信息。

标签: iphone objective-c ipad


【解决方案1】:

我不能确定,但​​感觉就像您没有考虑一个页面可能尚未完成渲染而另一个页面进入管道的用例。

中的那一行

loadSinglePageWithWidth:(float)width andHeight:(float)height

myPageRef = CGPDFDocumentGetPage(...

即使包裹在@synchronised pragma 中,也感觉特别不稳定。

我认为您需要考虑这种情况并取消任何现有的渲染/动画,然后才能开始下一个渲染/动画。

SO 不是调试器。

【讨论】:

    【解决方案2】:

    部分代码用于我的问题

    [NSObject cancelPreviousPerformRequestsWithTarget:self 选择器:@selector(loadPagesAccordingToCurrentOrientation) object:nil];

    [self performSelector:@selector(loadPagesAccordingToCurrentOrientation) withObject:nil afterDelay:0.5];

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-23
      • 2012-12-05
      • 2020-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多