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

时间:2014-04-27 17:38:32

标签: ios uitableview ios7 uikit uipickerview

enter image description here

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

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

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

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

有没有办法改善表现?

1 个答案:

答案 0 :(得分:0)

1。如果在didSelectRowAtIndexPath:index之后填充了UIPickerView的数据值/数组,性能可能会影响,因此预设值已经存在,如果您使用
static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
那么您将获得相当大的收益即使您在单元格中遇到UIPicker问题也会提高性能,因为只有第一个可见单元格会被初始化一次而后来的单元格将被重新使用。


2。另一种解决方案可以是使用详细的VC来选择各种值中的一个,或者在UITableViewCell中使用UITableView来显示多个值而不是UIPickerView。参考link1希望这会有所帮助。