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

首页设计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

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

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

    原文:Android零基础入门第57节:日期选择器DatePicker和时间选择器TimePicker 在实际开发中,经常会遇见一些时间选择器.日期选择器.数字选择器等需求,那么从本期开始来学习And ...

  2. picker-view、微信小程序自定义时间选择器(非官方)

    picker-view自定义时间选择器 官网的自定义时间选择器比较简陋.日期不准 下面是我自己写的一个demo <view class="baseList"> < ...

  3. swift基础:第二部分:函数和闭包

    今天本来想利用上午的时间本来打算将swift基础部分学习完的,不巧的是,后台来和我讨论用户评价的接口,讨论过后,商讨出一种可行的方案,十几分钟时间过去了,我拿到将接口介入到已经完成的页面中,完美,终于 ...

  4. Android PickerView滚动选择器的使用方法

    手机里设置闹钟需要选择时间,那个选择时间的控件就是滚动选择器,前几天用手机刷了MIUI,发现自带的那个时间选择器效果挺好看的,于是就自己仿写了一个,权当练手.先来看效果: 效果还行吧?实现思路就是自定 ...

  5. iOS-自定义起始时间选择器视图

    概述 自定义起始时间选择器视图, 调起时间选择器, 传值(起始时间/截止时间), 两者时间均要合理, 不能超过未来时间, 并且起始时间不能大于截止时间. 点击取消或空白处收起时间选择器. 详细 代码下 ...

  6. 微信小程序中利用时间选择器和js无计算实现定时器(将字符串或秒数转换成倒计时)

    转载注明出处 改成了一个单独的js文件,并修改代码增加了通用性,点击这里查看 今天写小程序,有一个需求就是用户选择时间,然后我这边就要开始倒计时. 因为小程序的限制,所以直接选用时间选择器作为选择定时 ...

  7. 移动端lCalendar纯原生js日期时间选择器

    网上找过很多的移动端基于zepto或jquery的日期选择器,在实际产品中也用过一两种,觉得都不太尽如人意,后来果断选择了H5自己的日期input表单,觉得还可以,至少不用引用第三方插件了,性能也不错 ...

  8. swift基础:第六部分:类与对象

    http://reactnative.cn/docs/0.24/getting-started.html#content(react Native 开发文档) 互联网这个时代,你松懈一天,就会有很多很 ...

  9. Swift基础语法学习总结(转)

    Swift基础语法学习总结 1.基础  1.1) swift还是使用// 和/* */ 来注释,并且/* */允许多行注释. 1.2) swift使用print和println打印,它的传参是一个泛型 ...

随机推荐

  1. Linux 管理软件

    公司的openfire先前运行在windows上的,但由于在windows上openfire内存机制问题,最多只能占用2GB内存,且时间稍微长久一些就会自动挂掉,用户无法登陆和连接,因此迁移到了Cen ...

  2. 在循环列表的富文本里摘出每个item的img标签内容(适合vue渲染)

    昨天在做公司项目的社区动态内容.后台接口返回的数据是数组套对象,对象里有富文本,然后需要摘出富文本里的img标签在列表里分开渲染(即图片九宫格样式).最终效果如图: 这个是后盾接口返回的json数据 ...

  3. 【python标准库模块一】时间模块time学习

    本文介绍python的标准库模块time的常见用法 时间模块time 导入时间模块 import time 得到时间戳,这是统计从1970年1月1日0点0分到现在经过了多少秒,一般用于加减法一起用,比 ...

  4. Node.js HTTP

    稳定性: 3 - 稳定 使用 HTTP 服务器或客户端功能必须调用 require('http'). Node 里的 HTTP 接口支持协议里原本比较难用的特性.特别是很大的或块编码的消息.这些接口不 ...

  5. JavaScript 注释

    JavaScript 注释可用于提高代码的可读性. JavaScript 注释 JavaScript 不会执行注释. 我们可以添加注释来对 JavaScript 进行解释,或者提高代码的可读性. 单行 ...

  6. MYSQL 索引类型、什么情况下用不上索引、什么情况下不推荐使用索引

    mysql explain的使用: http://blog.csdn.net/kaka1121/article/details/53394426 索引类型 在数据库表中,对字段建立索引可以大大提高查询 ...

  7. 安卓高级8 SurfaceView (1)

    文章转载:http://www.cnblogs.com/xuling/archive/2011/06/06/android.html 首先我们先来看下官方API对SurfaceView的介绍 Surf ...

  8. Linux下文件的mtime/atime/ctime研究

    概述 在Linux下,对于某一个文件或文件夹时间的描述有三种:文件修改时间mtime,文件访问时间atime,文件状态改变时间ctime.在Linux下无法获取到文件的创建时间,因为根本就没有保存这个 ...

  9. Android简易实战教程--第四十四话《ScrollView和HorizontalScrollView简单使用》

    一.ScrollView 由于手机屏幕的高度有限,当普通布局放不下现实和的内容时,ScrollView视图(滚动视图)就会派上用场,因为数据可以往下滚动显示. 二.HorizontalScrollVi ...

  10. Python 文本转语音

    文本转语音,一般会用在无障碍开发.下面介绍如何使用Python实现将文本文件转换成语音输出. 准备 使用Speech API 原理 示例代码 小总结 pyttsx方式 原理 示例代码 小总结 pytt ...