只显示一行重新创建UIPickerView

时间:2011-06-14 09:05:01

标签: iphone ios uiscrollview uipickerview

我需要一个“PickerView”,其行为类似于普通的UIPickerView,但只显示一行数据并具有自定义设计。

您在图片中看到的内容,显示从子视图1到子视图2的过渡。用户抬起手指后,滚动停止后,只会显示一个子视图:

IMAGE

所以基本上是一个滚动视图:

    通过一遍又一遍地显示相同的条目,
  • 在正面和负面两个方向都是无穷无尽的

  • 在多个子视图中使用分页

  • 仅在不滚动时显示一个子视图,在滚动时仅显示两个子视图。

我可以使用无限的scrollview工作,但不能启用分页。分页将始终限制我滚动到下一个子视图。

所以我正在考虑创建自己的UIView子类,其自定义滚动行为来模仿UIPickerView。但在此之前,我想总体上就这个想法得到一些看法。创建自定义UIView是正确的方法吗?任何人都有一些预期的性能经验? (将有计时器来处理滚动算法,当然必须重新创建...:)

另一种方法是将UIScrolView子类化并自己实现分页。我知道scrollView何时开始减速 ,所以也许有办法覆盖contentOffset让它滚动到正确的位置......?!

任何帮助表示赞赏!谢谢!

2 个答案:

答案 0 :(得分:0)

仅仅使用UIPickerView是否可行,但是剪切到中间行?您可以关闭showsSelectionIndicator以删除叠加层,并让代理人回传自定义行视图。

答案 1 :(得分:0)

这是一个很棒的自定义组件,它似乎能够完成您所需的一切:

http://dev.doukasd.com/2011/04/infinite-scrolling-dial-control-for-ios/

它不是无穷无尽的,而是一个带有大量单元格的修改后的UITableView。