gpt4 book ai didi

iphone - 删除/隐藏 UIDatePicker 的最小/最大日期范围之外的行?

转载 作者:可可西里 更新时间:2023-11-01 02:59:00 24 4
gpt4 key购买 nike

我有一个设置了最小和最大日期的 UIDatePicker。我想知道是否有一种方法可以隐藏在我的最短日期之前或之后的日期/时间的列的行。现在选择器每天都显示,但只有当前一周可供选择(粗体),我想要的是将给定周范围之外的数字隐藏起来。这可以通过 XCode 提供的 UIDatePicker 来完成,还是我必须从头开始构建自己的选择器?

- (void)viewDidLoad
{
[super viewDidLoad];

self.formatter = [NSDateFormatter new];
[self.formatter setDateFormat:@"dd:hh:mm:ss"];

NSDate *now = [NSDate date];

picker.minimumDate = [NSDate date];
picker.maximumDate = [now dateByAddingTimeInterval:604800];

[picker setDate:now animated:YES];
self.counterLabel.text = [now description];

self.now = [NSDate date];
self.counterLabel.text = [self.formatter stringFromDate:self.now];

}

最佳答案

使用 minimumDatemaximumDate API 的行为将如您所解释的那样 - 仍然显示日期但不允许选择它们。目前无法隐藏那些超出提供范围的日期,但我确实为您提供了解决方案。

不是使用 UIDatePicker 的最小和最大日期,您可以生成一个数组,其中包含您要向用户显示的所有 NSDate,然后使用将它们呈现给用户的 UIPickerView。我已经为我自己的一个应用程序完成了这个。

self.datePicker = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 162)];
self.datePicker.dataSource = self;
self.datePicker.delegate = self;
//...

#pragma mark - UIPickerView Data Source and Delegate

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

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
return [self.availableDates count];
}

- (CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component {
return 28;
}

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view {
UILabel *label = [[UILabel alloc] initWithFrame:CGRectZero];
label.font = [UIFont systemFontOfSize:20];
label.textColor = [UIColor blackColor];

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"EEE, MMMM d";

label.text = [dateFormatter stringFromDate:self.availableDates[row]];

[label sizeToFit];

return label;
}

关于iphone - 删除/隐藏 UIDatePicker 的最小/最大日期范围之外的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18568096/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com