【问题标题】:UITableView scrolling speedUITableView 滚动速度
【发布时间】:2013-01-03 08:42:32
【问题描述】:

我正在开发一个类似于 Facebook 的 iPhone 应用程序,但目的不同。我在UITableView 中的每一行都有一组数据,即内容、照片、喜欢的次数、cmets、标题等。我有自定义单元格,它继承了我创建的UITableviewcell我所有的 UI 对象,例如 UIIMageView、UILabel、UIButton 等。在滚动我的 UITableView 时,我会将我的数据提供给这个自定义单元格,它工作正常。

我的问题是滚动速度!

每当我滚动时,它都会被击中并且滚动很慢。我所有的 UI 组件分配都在主线程中完成。

有什么方法可以提高滚动速度或在单独的线程中为我的 UI 组件赋值?

【问题讨论】:

标签: iphone objective-c ios performance uitableview


【解决方案1】:

这就是问题所在,All my UI components assignment are done in main thread. !!

不应使用主线程来获取 url 或其他资源。会影响用户体验。获取图像 url 等应在单独的后台线程中执行,然后在下载完成后使用图像数据更新主线程。这应该可以解决您的问题。

还要弄清楚在主线程中执行了哪些任务并查看哪些与 UI 无关,将这些任务移至后台线程...

Lazy load images in UITableViewCell

【讨论】:

    【解决方案2】:

    您可以通过以下方式进行:

    1) 采用自定义表格视图单元格。 (不是必需的,但更适合美观和优化的代码)。

    2) 为单元格中的图像实现延迟加载。

    延迟加载是快速滚动和优化内存的好方法。

    您将准备好在表格视图中进行延迟加载的演示,Apple 也提供了相同的演示。

    这将解决您的问题。

    干杯,编码快乐!

    【讨论】:

      【解决方案3】:

      此问题是由于下载图像而出现的。当您向下滚动表格并释放其他单元格时,会创建表格单元格。创建单元格时,它会下载该单元格的图像,这就是当时主线程暂停的原因。下载图像后,它会移动到下一个单元格。

      您需要在另一个线程中下载图像,而不是在主线程中。 developer.apple.com 上的示例代码已提供,请检查此内容。我觉得对你有帮助。

      sample project code of lazy Loding

      【讨论】:

      • 我已停止加载图像。现在只设置了内容,同时我还为我的 UI 组件设置了框架(CGRect)。即使这样它也会影响我的滚动速度
      • 只有在单元格视图上加载大量数据时,滚动速度才会生效。请在一个新的单独线程中加载单元格上的数据,而不是在主线程中。您也可以对多个任务进行排队
      【解决方案4】:

      尝试下面的链接在 tableview 中创建延迟加载,这将使您的 tableview 滚动流畅

      https://github.com/enormego/EGOImageLoading

      http://developer.apple.com/library/ios/#samplecode/LazyTableImages/Introduction/Intro.html

      编码愉快!!!!

      【讨论】:

      • 我已停止加载图像。现在只设置了内容,同时我还为我的 UI 组件设置了框架 (CGRect)。即使这样它也会影响我的滚动速度。
      【解决方案5】:

      我不知道我是否真的得到了你的要求,但是当你滚动你的 tableview 时,它似乎是滞后的吗?因为获取数据?

      试试这个: https://github.com/rs/SDWebImage

      说明非常易于遵循和理解。当我尝试制作我的 Youtube 供稿(包括图片、视频标题、视频描述、发布日期等)时,我就是这样做的。希望对你有帮助

      【讨论】:

        【解决方案6】:

        我使用AsyncImageView 在UITableViewCells 中加载图像

        【讨论】:

          猜你喜欢
          • 2015-08-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多