2013-04-08 4 views
0

캘린더의 일정을 예약하기 위해 uidatepicker를 설정하려고했습니다. 내가 UIDatePicker에서 특정 날짜를 비활성화 (숨기기)해야합니다 (예 : 도시 외 또는 휴가 중).UIDatePicker에서 특정 날짜 사용 안 함

도와 주실 수 있습니까? 고맙습니다.

- (void)viewDidLoad 
{ 


    NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"IT"]; 
    [self.datePicker setLocale:locale]; 

    NSString *min = @"20132015"; 
    NSString *max = @"22132015"; 

    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
    [dateFormat setDateFormat:@"ddMMyyyy HH:mm"]; 
    NSDate *datemin = [dateFormat dateFromString:min]; 
    NSDate *datemax = [dateFormat dateFromString:max]; 
[self.view addSubview:datePicker]; 
datePicker.minuteInterval = 15; 
datePicker.maximumDate = datemax; 
datePicker.minimumDate = [NSDate date]; 

    [datePicker addTarget:self action:@selector(disableDate)  forControlEvents:UIControlEventValueChanged]; 

[datePicker addTarget:self 
       action:@selector(LabelChange:) 
     forControlEvents:UIControlEventValueChanged]; 


[super viewDidLoad]; 
// Do any additional setup after loading the view. 
} 

-(void)disableDate{ 

NSDate *pickedDate = datePicker.date; // Get current Date 
NSDate *disabledDate = [?????; 
if([pickedDate compare:disabledDate] == NSOrderedSame) 
{ 
    [datePicker setDate:disabledDate animated:YES]; 

} 
} 
     -(void)getDisableDate 
{ 
????? 
} 


- (void)LabelChange:(id)sender{ 


    NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
    [df setDateFormat:@"dd.MM.yyyy HH:mm"]; 
    NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"IT"]; 
    [self.datePicker setLocale:locale]; 

    labelDate.text = [NSString stringWithFormat:@"%@", 
        [df stringFromDate:datePicker.date]]; 

    NSLog(@"date:%@", datePicker.date); 


} 

답변

0

UIDatePicker 날짜의 범위를 지원하지 않습니다 는 여기에 몇 가지 코드입니다. 대신에 잘못된 날짜가 선택 될 때마다 날짜를 변경할 수있는 가장 가까운 날짜에 setDate:animated:을 사용하여 날짜를 변경합니다. 또한 선택한 날짜가 변경된 이유를 설명하는 메시지를 어딘가에 표시합니다.

또는 UIPickerView를 사용하여 사용자 지정 UIDatePicker를 작성하십시오. 너무 열심히, 나는 그것을 전에했다. 가장 나쁜 부분은 랩핑 값 (예 : 31 -> 1)을 처리하는 것입니다. 하지만 더 많은 작업이 필요합니다.

0

최상의 솔루션은 UIPickerView를 사용하여 맞춤 UIDatePicker를 만드는 것입니다. 너무 쉽고 나중에 쉽게 변경할 수 있습니다.

link을 확인하십시오.

관련 문제