0

我在 XCode 上使用 Utility Application 项目模板创建了一个非常简单的应用程序。我的 MainView 有两个 UIPickerView 组件和两个按钮。FlipSideView 有另一个 UIPickerView。

主视图上的选择器每个都有 4 个段,每个段有 8 行。另一面的选择器只有 8 行的 1 段。所有选择器上的所有行都只是文本。

仅使用此设置,按下按钮来回翻转视图会在动画实际开始之前显示明显的延迟,然后动画实际上似乎比应有的速度更快,就像它试图弥补失去的时间一样。

我删除了界面生成器中的选择器并将应用程序加载到手机上,现在动画看起来很自然。我也只尝试了一个选择器(反面那个),一切似乎仍然正常。所以我目前的理论是主视图中涉及的对象数量是原因。问题是我认为没有那么多(4 x 8 x 2 = 64),但我可能完全错了。这几乎是我的第一个应用程序,所以也许我只是做错了什么,或者手机的处理能力比我想象的要有限得多。

我正在考虑使用 pickerView:viewForRow:forComponent:reusingView: 创建选择器视图,看看这是否有望表现更好,但我不确定这是否只是浪费时间。

有什么建议么?

谢谢鲁伊

PS:3.1.2上3G手机测试

4

1 回答 1

0

行数和组件数与选取器视图本身的性能关系不大。选择器视图像表格一样工作,它们实际上没有内存中的组件和行数。相反,它们随时交换并重用屏幕上显示的相同少数视图。因此,如果您有 4 个组件,每个组件一次显示 5 行,那么即使每个组件中有数百个逻辑行,选择器视图也不会容纳超过 20 个视图。

因此,选择器视图的数据源中逻辑元素的数量与其视觉性能无关。

我不确定您在选择器视图和转换中看到了什么,但它很可能是由于加载和配置选择器视图的自定义代码中某处陷入困境的结果。我会设置断点/日志来查看它在过渡期间花费的时间。

于 2010-03-26T04:08:31.980 回答