在 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 水平选择器控件 (STHorizo​​ntalPicker) 的类刚刚发布在 GitHub 上。它远没有 UIPickerView 复杂,但它提供了选择数值的基本功能,而底层基础可能是添加更复杂功能的良好起点(它是一个 UIScrollView,其中包含一个带有多个 CATextLayers 标记的 UIView)。

它被设计用于 UITableCellViews,目前看起来像这样:

【讨论】:

【参考方案4】:

This website 有一个选择器的源代码,它水平对齐而不继承它。

【讨论】:

试过这个,一开始看起来不错,但是如果你把它放在滚动视图中,你必须做一些工作来避免滚动视图进入点击。可能足以使用委托来防止滚动视图在原始框架之外获得点击。【参考方案5】:

这绝对看起来像一个自定义组件。我建议从你的 iPhone 上获取 .app 文件,打开捆绑包,然后查看是否有该接口的 xib 文件。您可能会很幸运并发现该组件坐在那里。我的猜测是它是 UIScrollView 的子类,但如果不亲自了解开发人员或代码库,我当然无法确定这一点。

【讨论】:

【参考方案6】:

您会通过它们巨大的屏幕占用空间来识别选择器 :-) 这很可能是带有一系列固定宽度标签(或图像)的水平 UIScrollView。棘手的一点是让顶部的挡板带有透明的中心通道,可以接触到底层的滚动视图。或者,您可以采取简单的方法并覆盖四个图像条(每个边缘)并让中间保持打开状态,以便触摸事件直接进入滚动条。

这是一个自定义控件,但构建起来真的不那么难。

【讨论】:

以上是关于在 iPhone 上水平滚动的 UIPickerView?的主要内容,如果未能解决你的问题,请参考以下文章

仅在 iPhone 上水平添加 UIPanGesture

Bootstrap 响应式表格不会在 iOS 设备上水平滚动

添加手势识别器以允许在 Swift 中的 MapView 上水平滑动

使用自动布局在屏幕上水平均匀分布按钮。它们之间的间距不相等

如何在单个活动上水平排列多个图像

如何在 iPhone SDK 中单击按钮时水平滚动 ScrollView