PickerView封装

前面我已经对系统PickerView做了简单介绍,pickerView用法很简单,但如果想封装好一个PickerView类就不太容易了,本文是我最近一段时间写完项目后封装的一个PickerView类,支持自定义文字选择、日期选择、地区选择,简单易用,下面我值介绍一下用法:
// ViewController.swift
// JHPickerView
//
// Created by hanchen on 16/8/16.
// Copyright © 2016年 LiJianhui. All rights reserved.
//

import UIKit

class ViewController: UIViewController {

private let onePicker: JHPickerView = {
    var dataSource = [String]()
    for i in 0..<20 {
        dataSource.append("\(i)")
    }
    return JHPickerView(aDataSource: dataSource, aTitle: "AlonePicker")
}()
private let datePicker: JHPickerView = {
    return JHPickerView(aDatePickerMode: .Date, aTitle: "开始日期")
}()
private let areaPicker: JHPickerView = {
    return JHPickerView(anAreaType: .ProvinceCityDistrict, aTitle: "地区选择")
}()

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
}


@IBAction func onePickerBtnAction(sender: UIButton) {
    onePicker.show()
    onePicker.showSelectedRow(3, animated: true)
    onePicker.didClickDoneForTypeAloneHandler { (selectedRow, result) in
        print("selectedRow:\(selectedRow)")
        print("result:\(result)")
        sender.setTitle(result, forState: .Normal)
    }
    onePicker.didClickCancelHandler {
        print("dismiss")
    }

}
@IBAction func datePickerBtnAction(sender: UIButton) {
    datePicker.show()
    datePicker.setDate(NSDate(), animated: true)
    datePicker.didClickDoneForTypeDateWithFormat("yyy-MM-dd") { (selectedDate, dateString) in
        print("selectedDate:\(selectedDate)")
        print("dateString:\(dateString)")
        sender.setTitle(dateString, forState: .Normal)
    }
    datePicker.didClickCancelHandler {
        print("dismiss")
    }
}
@IBAction func areaPickerBtnAction(sender: UIButton) {
    areaPicker.show()
    areaPicker.didClickDoneForTypeAreaHandler { (province, city, district) in
        print("province:\(province)")
        print("city:\(city)")
        print("district:\(district)")
        sender.setTitle(province! + city! + district!, forState: .Normal)
    }
    areaPicker.didClickCancelHandler {
        print("dismiss")
    }
}

}
代码链接下载代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值