重新创建仅显示一行的 UIPickerView
Posted
技术标签:
【中文标题】重新创建仅显示一行的 UIPickerView【英文标题】:Recreate UIPickerView with just one row showing 【发布时间】:2011-06-14 09:05:00 【问题描述】:我需要一个“PickerView”,它的行为类似于普通的 UIPickerView,但只显示一行数据并具有自定义设计。
就像你在图片中看到的那样,显示了从子视图 1 到子视图 2 的过渡。用户抬起手指并停止滚动后,只会显示一个子视图:
IMAGE
所以基本上是一个滚动视图:
通过一遍又一遍地显示相同的条目,在正负两个方向上都是无穷无尽的
在多个子视图中使用分页
不滚动时只显示一个子视图,滚动时不超过两个子视图。
我可以让无限滚动视图工作,但不能启用分页。分页总是会限制我滚动到下一个子视图。
所以我正在考虑创建自己的 UIView 子类,该子类自定义滚动行为来模仿 UIPickerView。但在这样做之前,我想大致了解一下这个想法。创建自定义 UIView 是正确的方法吗?有人对预期的性能有一些经验吗? (会有计时器来处理滚动算法,当然必须重新创建...... :)
另一种方法是继承 UIScrollView 并自己实现分页。我知道滚动视图何时开始减速 ,所以也许有一种方法可以覆盖 contentOffset 以使其滚动到正确的位置...?!
任何帮助表示赞赏!谢谢!
【问题讨论】:
【参考方案1】:这是一个很棒的自定义组件,它似乎可以做你需要的一切:
http://dev.doukasd.com/2011/04/infinite-scrolling-dial-control-for-ios/
它不是无穷无尽的,而是一个修改后的 UITableView,包含大量单元格。
【讨论】:
【参考方案2】:只使用UIPickerView
,但剪到中间行是否可行?您可以关闭 showsSelectionIndicator
以删除覆盖并让委托传回自定义行视图。
【讨论】:
以上是关于重新创建仅显示一行的 UIPickerView的主要内容,如果未能解决你的问题,请参考以下文章