重新创建仅显示一行的 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的主要内容,如果未能解决你的问题,请参考以下文章

jQuery 数据表仅显示一行,但 JSON 包含所有记录

iPhone / iPad 表格视图仅重新加载一行而不是整个表格

如何重新格式化 CSV 中的日期以仅显示 MM/YYYY

SQL - 在按创建日期订购“重复重新推送”时显示一行两次

在情节堆积条形图中仅显示一行 df

如何在匹配后仅显示下一行?