【问题标题】:UIPickerView that scrolls horizontally on the iPhone?在 iPhone 上水平滚动的 UIPickerView?
【发布时间】:2009-05-18 17:09:38
【问题描述】:

我正在查看这个小部件,它似乎是一个 UIPickerView,但是我没有看到 iPhone SDK API 提供的任何只允许水平滚动的东西。大多数情况下,这一切都是垂直完成的。此选择器周围似乎还有一个自定义图形,因此可能也不是。

我很好奇是否有人能够确定这确实是 UIPickerView 还是被黑掉的 UIScrollView?这个小部件很方便——我喜欢它的使用。我在应用商店的一些随机杂货应用中找到了它。

截图如下:

谢谢大家。

【问题讨论】:

    标签: iphone objective-c cocoa-touch


    【解决方案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。棘手的一点是让顶部的挡板带有透明的中心通道,可以接触到底层的滚动视图。或者,您可以采取简单的方法并覆盖四个图像条(每个边缘)并让中间保持打开状态,以便触摸事件直接进入滚动条。

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

        【讨论】:

          猜你喜欢
          • 2011-03-16
          • 1970-01-01
          • 2011-02-11
          • 2013-03-30
          • 2013-12-06
          • 1970-01-01
          • 1970-01-01
          • 2014-11-25
          • 1970-01-01
          相关资源
          最近更新 更多