3

私のプロジェクトでは、日付18を表示し、このように試した100年をロックする必要がありますが、ここではその年(1912)の日と月をロックしています。 1912) 日付を選択すると、時間とともに表示されます。時間を表示したくないのですが、誰でもこの問題を解決できますか今年のスクリーンショットをチェック 日付と時刻を表示

 -(IBAction)donePickerView:(id)sender
 {

 NSDate *minDate1 =[datePickerView date];
NSString *theDate = [NSString stringWithFormat:@"%@",minDate1];

 self.dob.text = theDate;
 DatePicView.hidden = TRUE;
  datePickerView.hidden =TRUE;


}
-(void)textFieldDidBeginEditing:(UITextField *)textField {  
   [self scrollViewToCenterOfScreen:textField];
   scrlView.scrollEnabled = FALSE;
    if (textField == dob) 
{
   DatePicView.hidden = FALSE;
   datePickerView.hidden =FALSE;
   NSCalendar * gregorian = [[NSCalendar alloc] initWithCalendarIdentifier: NSGregorianCalendar];

   NSDate * currentDate = [NSDate date];


   NSDateComponents * comps = [[NSDateComponents alloc] init];
   [comps setYear: -18];
   NSDate * maxDate = [gregorian dateByAddingComponents: comps toDate: currentDate options: 0];
   [comps setYear: -100];
   NSDate * minDate = [gregorian dateByAddingComponents: comps toDate: currentDate options: 0];

      [datePickerView setMinimumDate:minDate];
   [datePickerView setMaximumDate:maxDate];
   [datePickerView setDate:minDate];
         [dob resignFirstResponder];

       }
}
4

1 に答える 1

1

maxDate を -100 年に設定します。

したがって、maxDate は minDate よりも低いですが、これらは逆である必要がありますか?

NSLog(@"Now: %@", currentDate);
NSLog(@"Max: %@", maxDate);
NSLog(@"Min: %@", minDate);


Now: 2012-10-18 10:04:43 +0000
Max: 1994-10-18 11:04:43 +0000
Min: 1912-10-18 11:45:11 +0000

1980-12-12 を選択すると、これは最大日付よりも低く、最小日付よりも高くなります。

UIDatePicker *pickerView = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, 0, 320, 300)];
//  add this to display date only.
[pickerView setDatePickerMode:UIDatePickerModeDate];

[pickerView setMinimumDate:minDate];
[pickerView setMaximumDate:maxDate];
[pickerView setDate:minDate];
[[self view] addSubview:pickerView];
[pickerView setDatePickerMode:UIDatePickerModeDate];
于 2012-10-18T10:06:59.243 に答える