iOS

前言

	NS_CLASS_AVAILABLE_IOS(2_0) __TVOS_PROHIBITED @interface UIDatePicker : UIControl <NSCoding>
	@available(iOS 2.0, *)						   public class UIDatePicker : UIControl, NSCoding
  • UIDatePicker 是 UIKit 控件中提供日期和时间选择的控件。

1、DatePicker 的创建

  • Objective-C

    	// 不设置 frame 时为系统默认大小
    	UIDatePicker *datePicker = [[UIDatePicker alloc] init];
    	
    	// 将 datePicker 添加到屏幕上
    	[self.view addSubview:datePicker];
    
  • Swift

    	// 不设置 frame 时为系统默认大小
    	let datePicker:UIDatePicker = UIDatePicker()
    	
    	// 将 datePicker 添加到屏幕上
    	self.view.addSubview(datePicker)
    

2、DatePicker 的设置

  • Objective-C

    	// 设置 frame
    	/*
    		不设置 frame 时为系统默认大小
    	*/
    	datePicker.frame = CGRectMake(50, 100, self.view.bounds.size.width - 100, 300);
    	
    	// 设置位置
    	datePicker.center = self.view.center;
    	    
    	// 设置显示模式
    	/*
    		UIDatePickerModeTime,            // 仅显示时间,不显示日期
    		UIDatePickerModeDate,            // 仅显示日期,不显示时间
    		UIDatePickerModeDateAndTime,     // 同时显示日期和时间,默认
    		UIDatePickerModeCountDownTimer,  // 显示为倒计时状态
    	*/
    	datePicker.datePickerMode = UIDatePickerModeDateAndTime;
    	    
    	// 设置本地化信息
    	/*
    		default is [NSLocale currentLocale]. setting nil returns to default
    	*/
    	datePicker.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
    	    
    	// 设置时区
    	/*
    		default is nil. use current time zone or time zone from calendar
    	*/
    	datePicker.timeZone = [NSTimeZone systemTimeZone];
    	    
    	// 设置日历
    	/*
    		default is [NSCalendar currentCalendar]. setting nil returns to default
    	*/
    	datePicker.calendar = [NSCalendar currentCalendar];
    	    
    	// 设置时间
    	/*
    		default is current date when picker created.
    	*/
    	datePicker.date = [NSDate date];
    	[datePicker setDate:[NSDate dateWithTimeIntervalSinceNow:60*60*26] animated:YES];
    	    
    	// 设置最小的时间
    	/*
    		default is nil
    	*/
    	datePicker.minimumDate = [NSDate dateWithTimeIntervalSince1970:0];
    	    
    	// 设置最大时间
    	/*
    		default is nil
    	*/
    	datePicker.maximumDate = [NSDate dateWithTimeIntervalSinceNow:60*60*24*7];
    	    
    	// 设置可以调整的最小时间间隔(分钟)
    	/*
    		interval must be evenly divided into 60. default is 1. min is 1, max is 30
    	*/
    	datePicker.minuteInterval = 2;
    	    
    	// 设置倒计时时间值(秒)
    	/*
    		default is 0.0. limit is 23:59 (86,399 seconds)。必须为 60 的整数倍,比如设置为 100,值自动变为 60
    	*/
    	datePicker.countDownDuration = 60*60;
    	    
    	// 添加点击触发事件
    	[datePicker addTarget:self action:@selector(datePickerChanged:) forControlEvents:UIControlEventValueChanged];
    
  • Swift

    	// 设置 frame
    	/*
    		不设置 frame 时为系统默认大小
    	*/
    	datePicker.frame = CGRectMake(50, 100, self.view.bounds.size.width - 100, 300)
    	    
    	// 设置位置
    	datePicker.center = self.view.center
    	    
    	// 设置显示模式
    	/*
    		case Time             // 仅显示时间,不显示日期
    		case Date             // 仅显示日期,不显示时间
    		case DateAndTime      // 同时显示日期和时间,默认
    		case CountDownTimer   // 显示为倒计时状态
    	*/
    	datePicker.datePickerMode = .DateAndTime
    	    
    	// 设置本地化信息
    	/*
    		default is [NSLocale currentLocale]. setting nil returns to default
    	*/
    	datePicker.locale = NSLocale(localeIdentifier: "en_US")
    	    
    	// 设置时区
    	/*
    		default is nil. use current time zone or time zone from calendar
    	*/
    	datePicker.timeZone = NSTimeZone.systemTimeZone()
    	    
    	// 设置日历
    	/*
    		default is [NSCalendar currentCalendar]. setting nil returns to default
    	*/
    	datePicker.calendar = NSCalendar.currentCalendar()
    	    
    	// 设置时间
    	/*
    		default is current date when picker created
    	*/
    	datePicker.date = NSDate()
    	datePicker.setDate(NSDate(timeIntervalSinceNow: 60*60*26), animated: true)
    	    
    	// 设置最小的时间
    	/*
    		default is nil
    	*/
    	datePicker.minimumDate = NSDate(timeIntervalSince1970: 0)
    	    
    	// 设置最大时间
    	/*
    		default is nil
    	*/
    	datePicker.maximumDate = NSDate(timeIntervalSinceNow: 60*60*24*7)
    	    
    	// 设置可以调整的最小时间间隔(分钟)
    	/*
    		interval must be evenly divided into 60. default is 1. min is 1, max is 30
    	*/
    	datePicker.minuteInterval = 2
    	    
    	// 设置倒计时时间值(秒)
    	/*
    		default is 0.0. limit is 23:59 (86,399 seconds)。必须为 60 的整数倍,比如设置为 100,值自动变为 60
    	*/
    	datePicker.countDownDuration = 60*60
    	    
    	// 添加点击触发事件
    	datePicker.addTarget(self, action: #selector(UiDatePicker.datePickerChanged(_:)), forControlEvents: .ValueChanged)
    
原文地址:https://www.cnblogs.com/QianChia/p/5755252.html