pickerview如何有日期组件?

时间:2011-09-28 10:01:43

标签: iphone date customization uipickerview uidatepicker

我需要在PickerView中添加一个日期组件。有关如何获取日期组件的任何想法?一种方法是手动维护所有与日期相关的信息,使用当前日期加减法来获取reqd日期,但这是非常繁琐的,还是其他方法吗?

Integrated PickerView with date component

编辑:我还没有编写代码,我需要一些关于如何获取日期组件(而不是UI)的值的想法。我的一个解决方案是采用当前日期,然后使用'dateByAddingTimeInterval'来维持最后50天和接下来的50天,但他的方法非常粗糙。有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

来自此处的评论:

我建议你尝试这种方法。

  1. 创建一个 UIPickerView
  2. 设置其参数(实现UIPickerViewDataSource的类中的步骤1):
    1. 实施将提供多个组件的- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView。在您的情况下,它是 3 return 3;
    2. 实施- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component,它将返回每个组件的行数。
  3. 设置其参数(实现UIPickerViewDelegate的类中的步骤1):
    1. 实施- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view,对于 0 1 UILabel以及两个UIView,组件将返回UILabel s为组件 2
    2. 的子视图(灰色和黑色)
  4. 您还可以通过在委托类中实现其他方法来进行更多自定义:

    设置选择器视图的尺寸

    – pickerView:rowHeightForComponent:
    – pickerView:widthForComponent:
    

    设置组件行的内容

    – pickerView:titleForRow:forComponent:
    

    您可以在此处找到完整的方法列表:UIPickerViewDelegate Protocol Reference

答案 1 :(得分:0)

我继续使用我在问题中提到的相同方法(如下所示)。即使它的原油,它完成了工作。我没有在第三个组件中测试此方法的大日期值。截至目前,我只有(30 + 30)个值,包括当前日期,非常稳定和快速。

“我的一个解决方案是采用当前日期,然后使用' dateByAddingTimeInterval '来维持过去50天和接下来的50天,但他的做法非常粗糙。”