iphone - 如何实现每天只显示一个组件的 UIDatepicker?

标签 iphone ios date datepicker components

客户想要一个只有一个组件可选的 UIDatePicker。因此,客户不需要单独的日/月和年选项,而只希望选择一个完整的日期(即 05-03-2013)

我是否需要为此构建一个自定义的 pickerview,它具有来自 nsdateformatter 的数据源,或者我可以使用 native UIDatePicker 并只显示 1 个组件吗?

编辑:

经过一些研究,我最终得到了以下实现。我首先设置开始和结束日期的地方。后记我遍历了开始和结束日期之间的所有日子,并将它们保存在一个可变数组中。

int numberOfDaysToThePast = 356;
    NSDate * startDate = [NSDate date];
    NSDate * endDate = [NSDate date];
    startDate = [startDate addTimeInterval:-(24 * 60 * 60* numberOfDaysToThePast)];

    dateArray = [[NSMutableArray alloc] init];
    for (NSDate *date = [startDate copy]; [date compare: endDate] < 0;
        date = [date dateByAddingTimeInterval:24 * 60 * 60] ) {
        NSString* dateString = [formatter stringFromDate:date];
       [dateArray addObject:dateString];

    }

//add custom picker
    pickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 0, 320, 200)];
    pickerView.delegate = self;
    pickerView.dataSource = self;
    [self.view addSubview:pickerView];

最佳答案

我有一个小代码片段,但从一年的角度来看,您可以做一些小的更改,这样就可以了

用于创建自 1960 年以来所有年份数组的 Objective-C 代码。非常适合输入到 UIPicker 中

//Get Current Year into i2
NSDateFormatter* formatter = [[[NSDateFormatter alloc] init]autorelease];
[formatter setDateFormat:@"yyyy"];
int i2  = [[formatter stringFromDate:[NSDate date]] intValue];


//Create Years Array from 1960 to This year
years = [[NSMutableArray alloc] init];
for (int i=1960; i<=i2; i++) {
[years addObject:[NSString stringWithFormat:@"%d",i]];
}

UIPickerView 委托(delegate)响应

- (NSInteger)numberOfComponentsInPickerView: (UIPickerView*)thePickerView {
return 1;
}

- (NSInteger)pickerView:(UIPickerView *)thePickerView numberOfRowsInComponent:(NSInteger)component
{
return [years count];
}
- (NSString *)pickerView:(UIPickerView *)thePickerView
titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
return [years objectAtIndex:row];

不要忘记接口(interface)中的声明

//Data
NSMutableArray *years;

我希望我能帮助你,如果不让我知道问题出在哪里好运和 HF

关于iphone - 如何实现每天只显示一个组件的 UIDatepicker?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15225331/

相关文章:

ios - UICollectionView Vertical 最后显示一半的单元格

ios - 解析 API - Facebook 登录在 iPhone 设备上不起作用

iphone - 访问可以更新的固定应用程序资源的正确方法是什么?

ios - 如何从其他 Mac 提交 App 到 AppStore?

php - 如果日期早于日期则显示错误

Java Dateformat——我可以将输入与某些格式进行比较并根据匹配的格式解析输入吗?

iphone - MPMoviePlayerViewController,删除 quicktime 符号/添加背景图像?

ios - 当用户在 uipageviewcontroller 的最后一页时设置按钮的可见性

iphone - 从NSThread调用方法

java - 如何从 JTable 中获取第一个小时