import UIKit

class ViewController: UIViewController , UIPickerViewDelegate,UIPickerViewDataSource{

var pickerView: UIPickerView!

override func viewDidLoad() {

super.viewDidLoad()

pickerView = UIPickerView()

pickerView.frame = CGRect.init(x: 0, y: 0, width: self.view.frame.size.width, height: 300)

pickerView.delegate = self

pickerView.dataSource = self

// 设置默认值

pickerView.selectRow(1, inComponent: 0, animated: true)

pickerView.selectRow(2, inComponent: 1, animated: true)

pickerView.selectRow(3, inComponent: 2, animated: true)

self.view.addSubview(pickerView)

// 建立一个按钮, 触摸按钮时获得选择框被选择的索引

let button = UIButton.init(frame: CGRect.init(x: 0, y: 0, width: 100, height: 30))

button.center = self.view.center

button.backgroundColor = UIColor.red

button.setTitle("按钮", for: .normal)

self.view.addSubview(button)

button.addTarget(self, action: #selector(buttonAction), for: .touchUpInside)

}

// 设置选择框的列数, 继承于 UIPickerViewDataSource 协议

func numberOfComponents(in pickerView: UIPickerView) -> Int {

return 3

}

// 设置选择框的行数, 继承于 UIPickerViewDataSource 协议

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

return 9

}

// 设置选择框各项内容的选项, 继承于 UIPickerViewDelegate 协议

func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {

return String(row) + "-" + String(component)

}

// 设置列的宽度, 继承于 UIPickerViewDelegate 协议

//    func pickerView(_ pickerView: UIPickerView, widthForComponent component: Int) -> CGFloat {

//        return self.view.frame.size.width/3

//    }

// 设置行的高度, 继承于 UIPickerViewDelegate 协议

func pickerView(_ pickerView: UIPickerView, rowHeightForComponent component: Int) -> CGFloat {

return 50

}

// 可以将图片作为选择框内容

// 选择框的内容,除了可以是字符串类型的, 还可以是任意 UIView 类型的, 比如我们将选项的内容设置为图片

// 检测响应选项的选择状态

func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {

print("第 \(component) 列, 第 \(row) 行")

}

// 触摸按钮时,获得被选中的索引

func buttonAction(sender: UIButton) {

let message = String(pickerView.selectedRow(inComponent: 0)) + "-"

+ String(pickerView!.selectedRow(inComponent: 1)) + "-"

+ String(pickerView.selectedRow(inComponent: 2))

print(message)

}

override func didReceiveMemoryWarning() {

super.didReceiveMemoryWarning()

// Dispose of any resources that can be recreated.

}

}

swift 实践- 12 -- UIPickerView的更多相关文章

  1. 【原创 Hadoop&Spark 动手实践 12】Spark MLLib 基础、应用与信用卡欺诈检测系统动手实践

    [原创 Hadoop&Spark 动手实践 12]Spark MLLib 基础.应用与信用卡欺诈检测系统动手实践

  2. Swift进阶 - 12个技巧

    听说你已经学习Swift几个月了,有没有想更进一步成为Swift高手的想法?我这里有11招秘技,各位施主且听我慢慢道来,结个善缘. 1. 扩展(Extension) 任务: 求数字的平方. // 菜鸟 ...

  3. Socket编程实践(12) --UDP编程基础

    UDP特点 无连接,面向数据报(基于消息,不会粘包)的传输数据服务; 不可靠(可能会丢包, 乱序, 反复), 但因此普通情况下UDP更加高效; UDP客户/服务器模型 UDP-API使用 #inclu ...

  4. 《高级软件测试》web测试实践--12月31日记录

    今日的任务进度如上图所示.我们对华科软件学院和计算机学院的网站进行了对比分析,分析的角度包括基本功能分析.前端性能分析.用户调研等.在这里我们简单总结下我们得到的评测结果. 基本功能分析:计算机学院和 ...

  5. 《高级软件测试》web测试实践--12月30日记录

    考完数学,我们正式开始web测试实践的作业,今天,我们主要进行了方案的选择和人员的分工.任务计划和安排如上图所示. 任务进展:完成题目选择和人员分工: 遇到问题:暂无: 下一步任务:完成软件评测.用户 ...

  6. Swift基础之UIPickerView和小animate的使用

    写一个简单的UIPickerView的使用Demo,比较简单,其中和一个小动画的结合使用 UIPickerView的使用基本上跟OC语言中的一样,就是写法的样式问题,想必开发过OC的应该不需要多讲了, ...

  7. Linux IPC实践(12) --System V信号量(2)

    实践1:信号量实现进程互斥 父子进程执行流程如下: 父进程 子进程 P P O(print) X(print) sleep sleep O(print) X(print) V V sleep slee ...

  8. swift 实践- 08 -- UISegmentedControl

    import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoa ...

  9. swift 学习- 12 -- 方法

    // 方法 是与某些特定类型相关的函数.  类, 结构体,枚举 都可以定义实例方法, 实例方法为给类型的实例封装了具体的任务与功能.  类, 结构体, 枚举 也可以定义类型方法,  类型方法与类型本身 ...

随机推荐

  1. cocos2dx 3.3 笔记

    ccs3 加入了 rapidjson ->一个JSON解析库https://github.com/miloyip/rapidjson

  2. 阿里云三台CentOS7.2配置安装CDH5.12

    1 购买3台阿里云服务 2 配置好ssh连接客户端 根据自己情况连接 3 安装好MySQL5.7 跳过,见之前博客 安装在hadoop001上 4 设置好Hosts文件 3台机器同时操作 vim /e ...

  3. 黑客游戏_www.fbisb.com 通关过程

    黑客游戏_www.fbisb.com 首先这个游戏是非常非常基础的. 输入网址 http://www.fbisb.com/youxi/ 来到第一关 ctrl+u查看源码,注意右键不行,因为这段js代码 ...

  4. python - zipfile模块

    import zipfile # f=zipfile.ZipFile(filename, mode="r", compression=ZIP_STORED, allowZip64= ...

  5. Django学习手册 - 初识django

    初识: django简介: 开放源代码的web应用框架 由python语言编写的. 一.框架基本概念(核心): 以上这个图就是 django 的核心逻辑图,必须熟记.后续的所有编程都跟这个图的逻辑息息 ...

  6. 20165237 2017-2018-2 《Java程序设计》第5周学习总结

    20165237 2017-2018-2 <Java程序设计>第5周学习总结 教材学习内容总结 1.内部类:在一个类中定义另一个类:外嵌类:包含内部类的类. 2.内部类的类体中不能声明类变 ...

  7. SpringBoot单元测试示例

    ⒈控制器Action示例 package cn.coreqi.controller; import org.junit.Test; import org.junit.runner.RunWith; i ...

  8. AI 玩法整理

    随着信息技术的火热发展,人工智能已经成为IT全行业的风口爆发点,既然风口来了,作为技术人人员也都毫不犹豫的分一杯羹,怎么玩呢? 接下来的博客就会带领大家一起玩玩AI 认识AI--略,如果有需要的可以再 ...

  9. 【转】MySQL— pymysql and SQLAlchemy

    [转]MySQL— pymysql and SQLAlchemy 目录 一.pymysql 二.SQLAlchemy 一.pymysql pymsql是Python中操作MySQL的模块,其使用方法和 ...

  10. 当linux中的所有指令突然不能使用的时候

    接到同事电话,线上linux系统所有命令执行不了(由于其误操作执行一些命令) 此时可以按以下步骤解决问题: 1.首先导入临时变量(重启虚拟机之后失效),使得所有命令行暂时可以用 直接在命令行执行以下命 ...