在 iPhone 上水平滚动的 UIPickerView?
Posted
技术标签:
【中文标题】在 iPhone 上水平滚动的 UIPickerView?【英文标题】:UIPickerView that scrolls horizontally on the iPhone? 【发布时间】:2009-05-18 17:09:38 【问题描述】:我正在查看这个小部件,它似乎是一个 UIPickerView,但是我没有看到 iPhone SDK API 提供的任何只允许水平滚动的东西。大多数情况下,这一切都是垂直完成的。此选择器周围似乎还有一个自定义图形,因此可能也不是。
我很好奇是否有人能够确定这确实是 UIPickerView 还是被黑掉的 UIScrollView?这个小部件很方便——我喜欢它的使用。我在应用商店的一些随机杂货应用中找到了它。
截图如下:
谢谢大家。
【问题讨论】:
【参考方案1】:我肯定会使用 iCarousel 库:
https://github.com/nicklockwood/iCarousel
该库的文档非常完善,代码干净且维护良好。
【讨论】:
那个项目帮助很大。很好的链接。 伙计,这是一个非常非常好的库,并且有据可查。我在哪里可以捐赠这个人?:) @Lucas:嗨……我现在也在处理自定义水平选择器视图。我浏览了 iCarousel 库。但是我可以在其中使用哪个概念来创建水平选择器视图?【参考方案2】:这完全是习惯。你确实可以做一些覆盖 UIImageView 和 UIScrollView 的事情。我猜这是100%的习惯。与所有编程一样,有很多方法可以做任何一件事情。
【讨论】:
你能告诉我具体怎么做吗?【参考方案3】:正如我最近在回复 this 问题时发布的那样,ios 水平选择器控件 (STHorizontalPicker) 的类刚刚发布在 GitHub 上。它远没有 UIPickerView 复杂,但它提供了选择数值的基本功能,而底层基础可能是添加更复杂功能的良好起点(它是一个 UIScrollView,其中包含一个带有多个 CATextLayers 标记的 UIView)。
它被设计用于 UITableCellViews,目前看起来像这样:
【讨论】:
【参考方案4】:This website 有一个选择器的源代码,它水平对齐而不继承它。
【讨论】:
试过这个,一开始看起来不错,但是如果你把它放在滚动视图中,你必须做一些工作来避免滚动视图进入点击。可能足以使用委托来防止滚动视图在原始框架之外获得点击。【参考方案5】:这绝对看起来像一个自定义组件。我建议从你的 iPhone 上获取 .app 文件,打开捆绑包,然后查看是否有该接口的 xib 文件。您可能会很幸运并发现该组件坐在那里。我的猜测是它是 UIScrollView
的子类,但如果不亲自了解开发人员或代码库,我当然无法确定这一点。
【讨论】:
【参考方案6】:您会通过它们巨大的屏幕占用空间来识别选择器 :-) 这很可能是带有一系列固定宽度标签(或图像)的水平 UIScrollView。棘手的一点是让顶部的挡板带有透明的中心通道,可以接触到底层的滚动视图。或者,您可以采取简单的方法并覆盖四个图像条(每个边缘)并让中间保持打开状态,以便触摸事件直接进入滚动条。
这是一个自定义控件,但构建起来真的不那么难。
【讨论】:
以上是关于在 iPhone 上水平滚动的 UIPickerView?的主要内容,如果未能解决你的问题,请参考以下文章
Bootstrap 响应式表格不会在 iOS 设备上水平滚动