UI Datepicker диапазон.iPhone - PullRequest
       20

UI Datepicker диапазон.iPhone

1 голос
/ 28 июля 2011

У меня есть datePickerView, который я хочу, чтобы у него была минимальная дата = текущее время, максимальная дата = 48 часов спустя.В настоящее время он работает нормально, так как я не могу выбрать из этого диапазона.Но есть некоторые эстетические проблемы.Часть периода в этом диапазоне не в черном цвете.Например, на рисунке ниже, сегодняшняя 7-часовая стрелка должна быть черной, но ее нет.

pic http://i53.tinypic.com/263frew.jpg

- (void)viewDidLoad 
{

[super viewDidLoad];
NSDate *now = [[NSDate alloc] init];
NSLog(@"now is %@", now);
[datepick setDate:now animated:YES];
[now release];
datepick.minimumDate = now;

NSDate *todaysDate = [NSDate date];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *dateComponents = [[NSDateComponents alloc] init];
[dateComponents setHour:48];
NSDate *targetDate = [gregorian dateByAddingComponents:dateComponents toDate:todaysDate  options:0];
[dateComponents release];
[gregorian release];
datepick.maximumDate = targetDate;
NSLog(@"targetDate is %@", targetDate);


}

1 Ответ

1 голос
/ 06 августа 2011

Это поведение по умолчанию, когда вы устанавливаете минимальную дату и максимальную дату, и APPLE делает это четко, чтобы сделать очевидным, что их нельзя выбрать.

Что вы можете сделать, это реализовать UIPickerView длядаты и реализации viewForRow для методов pickerView.

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view{
UILabel* tView = (UILabel*)view;
if (!tView){
    tView = [[UILabel alloc] init];

    // Add label.text which is the picker value for the row (for that component)

    // set the font for the label as black.

}

Вы также можете изменить размер шрифта значений в pickerView.

...