我需要在PickerView中添加一个日期组件。有关如何获取日期组件的任何想法?一种方法是手动维护所有与日期相关的信息,使用当前日期加减法来获取reqd日期,但这是非常繁琐的,还是其他方法吗?
编辑:我还没有编写代码,我需要一些关于如何获取日期组件(而不是UI)的值的想法。我的一个解决方案是采用当前日期,然后使用'dateByAddingTimeInterval'来维持最后50天和接下来的50天,但他的方法非常粗糙。有更好的方法吗?
答案 0 :(得分:1)
来自此处的评论:
我建议你尝试这种方法。
UIPickerView
。UIPickerViewDataSource
的类中的步骤1):
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
。在您的情况下,它是 3 :return 3;
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
,它将返回每个组件的行数。UIPickerViewDelegate
的类中的步骤1):
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view
,对于 0 , 1 和UILabel
以及两个UIView
,组件将返回UILabel
s为组件 2 您还可以通过在委托类中实现其他方法来进行更多自定义:
设置选择器视图的尺寸
– pickerView:rowHeightForComponent:
– pickerView:widthForComponent:
设置组件行的内容
– pickerView:titleForRow:forComponent:
您可以在此处找到完整的方法列表:UIPickerViewDelegate Protocol Reference
答案 1 :(得分:0)
我继续使用我在问题中提到的相同方法(如下所示)。即使它的原油,它完成了工作。我没有在第三个组件中测试此方法的大日期值。截至目前,我只有(30 + 30)个值,包括当前日期,非常稳定和快速。
“我的一个解决方案是采用当前日期,然后使用' dateByAddingTimeInterval '来维持过去50天和接下来的50天,但他的做法非常粗糙。”