CYC-pickerview 時間選取器

年月日選取器

#import <UIKit/UIKit.h>

@interface RootViewController : UIViewController
@property (nonatomic,retain)UILabel *secLabel;
@property (nonatomic, retain)UILabel *showLabel;
@property (nonatomic, retain)UIDatePicker * myDatePicker;
@end
#import "RootViewController.h"


@interface RootViewController ()

@end

@implementation RootViewController

-(void)dealloc
{

    [_showLabel release];
    [_myDatePicker release];
    [super dealloc];
}
- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.

     [self DateTime];

 //   [self viewTime];


}
- (void) DateTime
{
    // UIDatePicker 日期/時間選取器(滾輪)

    // 設置時間
    float oneYearTime = 0;
    // 給myDatePicker添加顏色
    self.myDatePicker.backgroundColor = [UIColor whiteColor];
    // 事件選擇器
    self.myDatePicker = [[UIDatePicker alloc] init];
    self.myDatePicker.center = self.view.center;
    self.myDatePicker.datePickerMode =  UIDatePickerModeDate;
    //    // 添加事件, 監聽值的改變
    [self.myDatePicker addTarget:self action:@selector(datePickerDateChanged:) forControlEvents:(UIControlEventValueChanged)];

    // 獲取當前時間
    NSDate *currentDate = self.myDatePicker.date;
    // 當前顯示的時間
    NSDate *oneYearFromToday = [currentDate dateByAddingTimeInterval:oneYearTime];
    // 所能顯示的最大時間
    NSDate *twoYearFromToday = [currentDate dateByAddingTimeInterval:50 * oneYearTime ];
    // 最小可選時間
    self.myDatePicker.minimumDate = oneYearFromToday;
    // 最大可選時間
    self.myDatePicker.maximumDate = twoYearFromToday;

    /*
     結論:
     如果兩個日期範圍屬性中任何一個未被設置, 則默認行爲將會允許用戶選擇過去或未來的任意日期

     */

    [self.view addSubview:self.myDatePicker];

    // 錶盤滾動到你指定的日期 2
    // [self.myDatePicker setDate:oneYearFromToday animated:YES];


    //    // 設置分鐘間隔  3
    //    self.myDatePicker.datePickerMode = UIDatePickerModeCountDownTimer;
    //    self.myDatePicker.minuteInterval = 15;

    // UIDatePicker

    // 設置日期選擇控件的地區, 選用 UIDatePickerModeDateAndTime 4
    [self.myDatePicker setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"zh_Hans_CN"]]; // 中文
    // [self.myDatePicker setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_SC"]]; // 英文

    // timeZone 6
    // 設置DatePicker的時區(默認設置)
    [self.myDatePicker setTimeZone:[NSTimeZone defaultTimeZone]];

    // datePickerMode, 顯示小時, 分鐘和AM/PM, 7
    // [self.myDatePicker setDatePickerMode:UIDatePickerModeTime];
    // 顯示年月日
    // [self.myDatePicker setDatePickerMode:UIDatePickerModeDate];
    // 顯示日期, 小時, 分鐘, 和AM/PM
    // [self.myDatePicker setDatePickerMode:UIDatePickerModeDateAndTime];
}
- (void)datePickerDateChanged:(UIDatePicker *)dataPicker
 {

 [self clicked:dataPicker];

 }
 - (void)clicked:(id)sender {
 // 獲取用戶通過UIDatePicker設置的日期和時間
 NSDate *selected = [self.myDatePicker date];
 // 創建一個日期格式器
 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
 // 爲日期格式器設置格式字符串
 [dateFormatter setDateFormat:@"yyyy年MM月dd日 HH:mm"];
 NSString *destDateString = [dateFormatter stringFromDate:selected];
 NSString *message = [NSString stringWithFormat:@"你選擇的日期是:%@", destDateString ];
 // 創建一個UIAlertView對象(警告框), 並通過該警告框顯示用戶選擇的日期, 時間
 UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"日期和時間" message:message delegate:nil cancelButtonTitle:@"確定" otherButtonTitles:nil, nil];
 [alert show];

 }

// 將timer, t定義爲全局變量
NSTimer *timer;
static int t = 0;

- (void)viewTime
{

    self.secLabel = [[UILabel alloc]initWithFrame:CGRectMake(140, 500, 100, 40)];
    [self.view addSubview:self.secLabel];
    // 設置Label的字體大小
    self.secLabel.font = [UIFont systemFontOfSize:30];
    self.secLabel.textColor = [UIColor redColor];
        self.myDatePicker.backgroundColor = [UIColor whiteColor];
        // 事件選擇器
        self.myDatePicker = [[UIDatePicker alloc] init];
      // 將myDatePicker試圖放到屏幕的中間
        self.myDatePicker.center = self.view.center;
         // 選擇myDatePicker的樣式
        [self.myDatePicker  setDatePickerMode:  UIDatePickerModeCountDownTimer];
    // 將myDatePicker添加到當前視圖上
       [self.view addSubview:self.myDatePicker];

// 計時器, 每1秒調用tickDown方法一次, 該方法是類方法
    timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(tickDown) userInfo:nil repeats:YES];
    [timer fire];


}
- (void)tickDown
{

   t += 30;

    self.secLabel.text = [NSString stringWithFormat:@"%d 秒", t % 60];
   [self.myDatePicker setCountDownDuration:t];


}

效果圖

發佈了33 篇原創文章 · 獲贊 0 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章