带有自定义日期的 UIPickerView
Posted
技术标签:
【中文标题】带有自定义日期的 UIPickerView【英文标题】:UIPickerView With Custom Dates 【发布时间】:2013-01-05 19:34:02 【问题描述】:我不能使用 UIDatePicker。在所有评论者告诉我只使用 UIDatePicker 之前,我只想在一开始就把它扔掉。我想要一个显示一年中所有日子的选择轮,直到今天,并将其显示为 Day: 1/Jan 1, Day: 2/Jan 2 等等。这是我到目前为止所拥有的,它检测一年中的哪一天“数字”,并用直到今天的所有日期填充 PickerWheel:
NSCalendar *currentCalendar = [NSCalendar currentCalendar];
NSDate *today = [NSDate date];
NSInteger dc = [currentCalendar ordinalityOfUnit:NSDayCalendarUnit
inUnit:NSYearCalendarUnit
forDate:today];
options = [[NSMutableArray alloc]init];
for (int index = 1; index <= dc; index++)
NSString *pickerItemTitle = [NSString stringWithFormat: @"Day: %d", index];
[options addObject: pickerItemTitle];
我可以做些什么来使它也匹配 NSInteger 与日期,并让它成为 pickerItemTitle 的一部分?
【问题讨论】:
【参考方案1】:想通了。添加了一些代码以在循环中形成基于日期整数的日期。现在,为 uipickerview 设置数组的 viewWillAppear 方法如下所示:
- (void)viewWillAppear:(BOOL)animated
NSCalendar *currentCalendar = [NSCalendar currentCalendar];
NSDate *today = [NSDate date];
NSInteger dc = [currentCalendar ordinalityOfUnit:NSDayCalendarUnit
inUnit:NSYearCalendarUnit
forDate:today];
options = [[NSMutableArray alloc]init];
for (int index = 1; index <= dc; index++)
NSDateComponents *components = [[NSDateComponents alloc] init];
[components setDay:index];
NSCalendar *gregorian = [[NSCalendar alloc]
initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *date = [gregorian dateFromComponents:components];
NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
[formatter setDateFormat:@"MMM dd"];
NSString *articleDateString = [formatter stringFromDate:date];
NSString *pickerItemTitle = [NSString stringWithFormat: @"Day: %d/%@", index, articleDateString];
[options addObject: pickerItemTitle];
[super viewWillAppear:YES];
【讨论】:
以上是关于带有自定义日期的 UIPickerView的主要内容,如果未能解决你的问题,请参考以下文章
如何在iOS swift中实现带有月份、日期和时间的自定义选择器?
带有自定义组件的 Material ui 文本字段和 Formik 表单
Spring Data JPA - 带有“@Param Date”的自定义@Query 不起作用