How could I create a horizontal UIPickerView style control?

时间:2016-02-17 12:21:40

标签: objective-c swift cocoa-touch uiview

UIPickerView

我想创建一个与水平UIPickerView等效的自定义UIView。数据元素,如"山景城,桑尼维尔,库比蒂诺,圣克拉拉,圣何塞"会从左向右移动。观点将是漫长而薄弱的。高度为50像素,宽度为350倍。

我需要使用协议来获取我的数据源元素,但我更感兴趣的是它的视觉方面。

我如何左右动作?我应该只做一个令人难以置信的长视图(屏幕外),并左右改变框架。这似乎是个坏主意,因为一次只需要在控件中看到3-5个选项。如果数据源是100个元素,那么在长视图中加载其他95个屏幕是没有意义的。

所以也许我应该加载~9或其他东西。在屏幕上3-5,再加上左右3左右。每次触发控件左右移动时,它都会加载视图上的另一个元素(?)。

这是实现这一目标的好方法吗?约9 UILabel的细长视图。当控件向右移动时,我会将更左侧的UILabel移动到最右侧隐藏,并将UILabel更改为数据源中的下一个。

我也可能想根据其位置更改文字大小。如果它当前被选中,我要么加粗它并可能增加字体大小。视图移动后,我如何逐步实现此目的?如果文本只是在视图中完全移动到中心后才会更改,这将是奇怪的。随着接近中间,它应该会逐渐增长。 我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

集合视图可以解决问题,显然需要进行一些编码 我建议您查看以下库的代码或使用以下库 我已经使用过一次,几乎完全符合你的需求而且效果很好: AKPickerView