使用内联选择器的 UITableView 滚动性能

Posted

技术标签:

【中文标题】使用内联选择器的 UITableView 滚动性能【英文标题】:UITableView scrolling performance with inline pickers 【发布时间】:2014-04-27 17:38:31 【问题描述】:

我有一个静态 UITableView,它使用内联选择器来允许用户更改各种属性。选择器位于其对应值单元格下方的单元格中,并隐藏起来,直到用户点击上方的单元格。

表格中有 3 个部分,共有 8 个选取器视图。

我的问题是,当用户第一次在表格视图上向下滚动时(到第 2 和第 3 部分 - 有 5 个选择器),滚动非常不稳定;这会导致糟糕的用户体验。

发生的情况是,当用户滚动时,选择器视图正在加载,因为这两个事件都发生在主线程上,所以滚动是垃圾。

有什么办法可以提高性能吗?

【问题讨论】:

【参考方案1】:

1。如果在 didSelectRowAtIndexPath:index 之后填充 UIPickerView 的数据值/数组,则性能会影响性能,因此假设这些值已经存在,如果您使用 static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 那么即使您使用单元格内的 UIPicker 存在问题,因为只有第一个可见单元格将被初始化一次,而后面的单元格将重新使用。 2。另一种解决方案可以是有一个详细的 VC 用于在各种值中选择一个,或者在 UITableViewCell 中有一个 UITableView 来显示多个值而不是 UIPickerView。参考link1希望对您有所帮助。

【讨论】:

以上是关于使用内联选择器的 UITableView 滚动性能的主要内容,如果未能解决你的问题,请参考以下文章

UITableView 滚动性能问题

iOS5:UITableView 滚动性能不佳

UITableView 滚动性能

下载 JSON 时如何解决 UITableView 滚动性能滞后的问题?

UITableView滚动性能优化

UITableView 在滚动/分页时无法正确处理 contentOffset