如何彈出UIDatePicker最好


UIDateicker並沒有繼承UIPickerView,它的寬度只有iphone的寬度,在ipad上直接顯示出來非常不協調,所以蘋果建議用UIPopoverViewController來顯示,所以你可以在里面任意定制。

在iphone中顯示需要手動配制動畫,因為它只是一個視圖。所以你有下面幾種方式顯示出一個UIDatePicker.

  • 使用UIView動畫塊從底部慢慢滑動上來
  • 嵌入到UIAlert或者UIActionSheet中
  • 將UIDateicker視圖做為可輸入控件的定制鍵盤,inputView.
  • 最后我的變態方案將兩個UIDatePicker一起彈出,形成一個時間區域選擇 
    •  1 NSLocale *locale = [[[NSLocale alloc] initWithLocaleIdentifier:@"am_ET"] autorelease];
       2     
       3     
       4     UIDatePicker *datePicker1 = [[[IoriDatePicker alloc] initWithFrame:CGRectMake(-80, 0, 0, 0)] autorelease];
       5     UIDatePicker *datePicker2 = [[[UIDatePicker alloc] initWithFrame:CGRectMake(-80, 0, 0, 0)] autorelease];
       6     CGRect frame = datePicker1.frame;
       7     frame.origin.y = -frame.size.height*0.1/2l;
       8     datePicker1.frame = frame;
       9     datePicker2.frame = frame;
      10     datePicker1.transform =  CGAffineTransformMakeScale (0.9, 0.9);
      11     datePicker2.transform =  CGAffineTransformMakeScale (0.9, 0.9);
      12     
      13     NSTimeZone *timeZone = [[NSTimeZone alloc] initWithName:@"Antarctica/Vostok"];
      14     NSCalendar *calendar = [NSCalendar currentCalendar];
      15     calendar.locale = locale;
      16     calendar.timeZone = timeZone;
      17     datePicker1.calendar = calendar;
      18     
      19     UIView *datePickerContaner = [[[UIView alloc] initWithFrame:CGRectMake(0, 30, 320, datePicker1.frame.size.height)] autorelease];
      20     UIView *datePickerView1 = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, 160, datePickerContaner.frame.size.height)] autorelease];
      21     UIView *datePickerView2 = [[[UIView alloc] initWithFrame:CGRectMake(160, 0, 160, datePickerContaner.frame.size.height)] autorelease];
      22     datePickerView1.clipsToBounds = YES;
      23     datePickerView1.autoresizesSubviews = YES;
      24     datePickerView2.clipsToBounds = YES;
      25     datePickerView2.autoresizesSubviews = YES;
      26     datePickerView1.layer.borderWidth = 1;
      27     datePickerView1.layer.cornerRadius = 8;
      28     datePickerView2.layer.borderWidth = 1;
      29     datePickerView2.layer.cornerRadius = 8;
      30     [datePickerContaner addSubview:datePickerView1];
      31     [datePickerContaner addSubview:datePickerView2];
      32     
      33     
      34     datePicker1.datePickerMode = UIDatePickerModeTime;
      35     [datePickerView1 addSubview:datePicker1];
      36     
      37     
      38     datePicker2.datePickerMode = UIDatePickerModeTime;
      39     [datePickerView2 addSubview:datePicker2];

       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM