【问题标题】:How to make my own UIPickerView?如何制作我自己的 UIPickerView?
【发布时间】:2013-03-18 18:02:49
【问题描述】:

由于 UIPickerView 无法自定义到我想要的级别(不冒隐藏特定子视图的风险),我需要自己滚动来选择时间。

我想我可以使用两个 UITableView 来做到这一点,但我不确定如何做两件事:

1) 如何确定哪个单元格位于视图中间(即用户选择了哪个单元格)?

2) 一旦用户停止滚动,如何让表格捕捉到最靠近视图中间的单元格?

感谢您的帮助。

【问题讨论】:

  • UIDatePicker 没有选择?
  • 不,您根本无法自定义日期选择器,除了添加叠加层或进入并逐个编辑子视图。即便如此,您也无法更改标签字体。

标签: ios objective-c uitableview uipickerview


【解决方案1】:

为什么说 UIPickerView 不能自定义?。它有一堆委托方法,可以进行大量自定义,例如行的视图、行的高度等。

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIPickerViewDelegate_Protocol/Reference/UIPickerViewDelegate.html

在您的 ViewController 中实现委托并根据需要对其进行自定义。

【讨论】:

  • 我的错误-我知道UIDatePicker不能自定义,所以我认为UIPickerView也是一样的。不过,你能摆脱 Picker View 的框架吗?我希望在我的应用中呈现极简主义风格。
  • 我以前从未这样做过,我认为没有一种简单的方法可以删除框架,因为没有委托方法。您可能需要从 UIPickerView 子类化并覆盖 layoutSubviews 方法,检查默认情况下存在的图层并删除它们。但不确定这最终是否可以正常工作。
【解决方案2】:

您只是想选择一个时间?然后使用 UIDatePicker。这是时间/日期的选择器视图。

【讨论】:

  • 你绝对不能自定义UIDatePicker。
【解决方案3】:

根据您想要的自定义类型,您可能不需要制作自己的 UIPickerView。您可以使用 UIPickerViewDelegate 为每个组件返回您自己的视图。检查pickerView:viewForRow:forComponent:reusingView:

【讨论】:

    【解决方案4】:

    免费的 Sensible TableView 框架有一个基于 UITableView 的日期选择器,您可以开箱即用。应该可以为您节省大量时间,因为它可以处理所有滚动和表格视图大小调整。希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-12
      • 1970-01-01
      • 2015-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-02
      相关资源
      最近更新 更多