Swift基础之PickerView(时间)选择器

代码讲解:(后面有额外代码讲解)

首页设计UIPickerView的样式设计:

leftArray = ["花朵","颜色","形状"];

let array1 = ["茉莉","玫瑰","郁金香","紫罗兰"];

let array2 = ["红色","黄色","黑色","白色","紫色"];

let array3 = ["圆形","方形","椭圆形"];

righArray = [array1,array2,array3];

let pickerV = UIPickerView.init(frame: CGRectMake(0, 100, self.view.frame.size.width, 260));

//pickerV.backgroundColor = UIColor.brownColor();

//设置是否显示选中状态

pickerV.showsSelectionIndicator = true;

//设置代理

pickerV.dataSource = self;

pickerV.delegate = self;

self.view.addSubview(pickerV);

let btn = UIButton.init(frame: CGRectMake(40, 380, F_Device_W()-40*2, 40));

btn.setTitle("时间选择器", forState: UIControlState.Normal);

btn.backgroundColor = UIColor.cyanColor();

btn.layer.cornerRadius = 5;

self.view.addSubview(btn);

btn.addTarget(self, action: #selector(btnClick), forControlEvents:.TouchUpInside);

添加代理,执行必要的代理方法:

//MARK:---必须要实现的UIPickerViewDatasource的方法

//返回几个分区

func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {

return 2;

}

//返回各分区行数

func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {

if (component == 0)

{

return leftArray.count;

}

else

{

//获取选中第0分区的哪一行

let row1 = pickerView.selectedRowInComponent(0);

//然后根据获取的行号获取第1分区所对应的数据

let arrarY = righArray.objectAtIndex(row1);

return arrarY.count;

}

}

时间选择器UIDatePicker

//UIDatePicker时间选择器,继承于UIControl

let datePick = UIDatePicker.init(frame: CGRectMake(0, 80, self.view.frame.size.width, 300));

//设置显示时间样式,中or英,默认英文显示样式

datePick.locale = NSLocale.init(localeIdentifier: "zh_CN");//中文

datePick.backgroundColor = UIColor.lightGrayColor();

//设置显示类型

datePick.datePickerMode = UIDatePickerMode.DateAndTime;//日期和时间

//设置默认的日期

datePick.date = NSDate.init();

//设置可以选择的最小日期

datePick.minimumDate = NSDate.init(timeIntervalSinceNow: -(60*60*24*7));

//设置可以选择的最大日期

datePick.maximumDate = NSDate.init(timeIntervalSinceNow: 60*60*24*7);

//添加方法获取显示的日期值

datePick.addTarget(self, action: #selector(changeValueDate), forControlEvents: .ValueChanged);

self.view.addSubview(datePick);

dateLabel = UILabel.init(frame: CGRectMake(40, 390, self.view.frame.size.width-80, 50));

dateLabel.textColor = UIColor.blueColor();

dateLabel.textAlignment = NSTextAlignment.Center;

self.view.addSubview(dateLabel);

}

func changeValueDate(datePickerV:UIDatePicker) {

//获取当前选中的时间

let dateE = datePickerV.date;

//转换时间格式

let formatterR = NSDateFormatter.init();

formatterR.dateFormat = "yyyy-MM-dd hh:mm:ss";

let dateStr = formatterR.stringFromDate(dateE);

dateLabel.text = dateStr;

}

额外代码讲解:

//MARK:---值得注意的是,Swift中没有了宏定义define,可以将宏定义写成func 方法进行调用

//如:获取屏幕的宽  高方法

func F_Device_W() -> CGFloat {

return UIScreen.mainScreen().bounds.size.width;

}

func F_Device_H() -> CGFloat {

return UIScreen.mainScreen().bounds.size.height;

}

//设置RGBA宏方法

func RGBA (r:CGFloat, g:CGFloat, b:CGFloat, a:CGFloat) -> UIColor {

return UIColor (red: r/255.0, green: g/255.0, blue: b/255.0, alpha: a);

}

//判断系统版本方法,方法的使用:如:navBar = UIView(frame: CGRectMake(0, 0, 320, IS_IOS7() ? 64:44))//三元运算

func IS_IOS7() ->Bool { return (UIDevice.currentDevice().systemVersion as NSString).doubleValue >= 7.0;

}

func IS_IOS8() -> Bool { return (UIDevice.currentDevice().systemVersion as NSString).doubleValue >= 8.0;

}

结果显示:

        

源码下载Demo:http://download.csdn.net/detail/hbblzjy/9592406

时间: 2024-11-06 11:35:12

Swift基础之PickerView(时间)选择器的相关文章

Android零基础入门第57节:日期选择器DatePicker和时间选择器TimePicker

在实际开发中,经常会遇见一些时间选择器.日期选择器.数字选择器等需求,那么从本期开始来学习Android中常用选择器,今天学习的是DatePicker和TimePicker. 一.DatePicker DatePicker是一个比较简单的组件,从FrameLayout派生而来,供用户选择日期.其在FrameLayout的基础上提供了一些方法来获取当前用户所选择的日期,如果程序需要获取用户选择的日期则可通过为DatePicker添加 OnDateChangedListener 进行监听来实现. 使

Windows Phone 8.1中日期和时间选择器DatePicker,TimePicker

开篇之前,推荐王磊老师的Windows 8.1中关于DatePicker和TimePicker的讲解 链接:重新想象 Windows 8.1 Store Apps (73) - 新增控件: DatePicker, TimePicker 首先Windows Phone 8.1的这两个选择器的使用和在Windows 8.1中的使用差不多. 1.前台DatePicker和TimePicker标签的使用没什么太大的问题,其中Header属性其实就是给选择器起个名字而已 DateChanged和TimeC

IOS时间选择器UIPickerView,ios8中UIView替代UIActionSheet

以前在网上下了个时间选择器Demo,由于封装成UIActionSheet类型,而ios8弃用了UIActionSheet和UIAlertView,不得不对代码进行修改.将封装的UIActionSheet改为UIView,为了多态初始化时添加了枚举(几个时间选择器样式). 以前下载的Demo网址实在找不到了,对原作者表示抱歉. 参考:DateTimeYearPickerView,UIActionSheet上添加UIPickerView iOS8替换方案 项目:点击下载 UIActionSheet改

Android开发之日期、时间选择器(DatePicker和TimePicker)的功能和用法

日期.时间选择器(DatePicker和TimePicker)的功能和用法 DatePicker和TimePicker是两个比较常用的控件,它们都从FrameLayout派生而来,其中DatePicker用于选择日期.TimePicker用于选择时间. DatePicker和TimePicker在FrameLayout的基础上提供了一些方法来获取当前用户所选择的日期.时间:开发者可以通过为DatePicker添加OnDateChangedListener.为TimePicker添加OnTimeC

TimePickerDialog时间选择器,选择0-9分钟时,显示为10:0 9:1的样式,要改成 10:00 09:01的样式 的解决方式

1 /** 2 * 设置时间选择器 3 */ 4 private void setTimePickerDialog() { 5 Calendar mCalendar = Calendar.getInstance(); 6 mCalendar.setTimeInMillis(System.currentTimeMillis()); 7 final int hour = mCalendar.get(Calendar.HOUR_OF_DAY); 8 int minute = mCalendar.get

从Pitre《Swift 基础教程2nd》开始

看了两天<Learn Objective-C on the MAC> 中文版本<Objective-C基础编程>,大概认真读到了第9章内存管理部分,感觉这语言可比C++简单多了. 第一天,因为有C语言基础的缘故,我在windows 上安装了GNUstep (Objective-C)开发环境,变看电子书籍,边在PC上编译运行树上的示例,几乎一个都没放过,还做了不少笔记. (毕竟作者 Mark Dalrymaple & Scott Knaster 是高屋建瓴,叙述技术娓娓道来,

bootstrap时间选择器使用方法详解

在bootstrap框架中的时间选择器有两种: dateTimePicke r和 dateRangePicker,今天就和大家一起来扒一扒其具体用法和实现源码. 1.dateTimePicker好像是官方嫡插件: 需要的文件: 1 <link rel="stylesheet" href="css/bootstrap-datetimepicker.min.css"> 2 <script src="js/bootstrap-datetimep

日期时间选择器:datetimepicker

<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>演示:日期时间选择器:datetimepicker</title> <link rel="stylesheet" type="text/css" href="css/main.css" /> <link rel=&quo

Android可精确到秒的时间选择器

android自带的时间选择器只能精确到分,但是对于某些应用要求选择的时间精确到秒级,此时只有自定义去实现这样的时间选择器了.下面介绍一个可以精确到秒级的时间选择器. 效果图: 下面是工程目录: com.wheel中的WheelView是滑动控件的主类,如果需要更改显示效果可以更改这个类中的代码(比如字体显示大小等),drawable文件夹下是一些布局资源文件,是一些背景色的定义,time_picker.xml是这个时间选择对话框的layout文件. 源码:http://pan.baidu.co