UIDatePickerView和UIToolbar的使用

自定义的xib类
//
//  KeyboardToolBar.swift
//  datepicker
//
//  Created by zhang on 16/1/16.
//  Copyright © 2016年 jin. All rights reserved.
//

import UIKit
//自定义协议,响应当前工具条的按钮点击事件
@objc protocol KeyboardToolBarDelagate
{
    optional func keyboardToolBarDownButtonClicked()
}
class KeyboardToolBar: UIToolbar {
    @IBOutlet weak var preButton: UIBarButtonItem!

    @IBOutlet weak var downButton: UIBarButtonItem!

    @IBAction func downClick(sender: UIBarButtonItem) {
        self.keyboardDelagate?.keyboardToolBarDownButtonClicked?()
    }
    weak var keyboardDelagate:KeyboardToolBarDelagate!
    //快速初始化
    class func instance()->KeyboardToolBar
    {
        //记载xib
        let toolBar = NSBundle.mainBundle().loadNibNamed("KeyboardToolBar", owner: nil, options: nil).last as! KeyboardToolBar
        return toolBar
    }

    /*
    // Only override drawRect: if you perform custom drawing.
    // An empty implementation adversely affects performance during animation.
    override func drawRect(rect: CGRect) {
        // Drawing code
    }
    */
}
在控制器中的调用
//
//  ViewController.swift
//  datepicker
//
//  Created by zhang on 16/1/16.
//  Copyright © 2016年 jin. All rights reserved.
//

import UIKit

class ViewController: UIViewController,KeyboardToolBarDelagate {
    var datePicker:UIDatePicker!

    @IBOutlet weak var textField: UITextField!


    override func viewDidLoad() {
        super.viewDidLoad()
        //创建UIDatePickerView
        self.datePicker = UIDatePicker()
        //设置时间地区
        self.datePicker.locale = NSLocale(localeIdentifier: "zh")
        //设置时间显示模式
        self.datePicker.datePickerMode = UIDatePickerMode.Date
        //设置UITexField的键盘
        self.textField.inputView = self.datePicker
        //返回自定义的xib对象
        let keyBoardToolBar = KeyboardToolBar.instance()
        //设置自定义xib对象的代理
        keyBoardToolBar.keyboardDelagate = self
        //设置键盘附件
        self.textField.inputAccessoryView = keyBoardToolBar
//        self.codeKeyboard()

//        self.view.addSubview(toolBar)
        // Do any additional setup after loading the view, typically from a nib.
    }
    //代理方法,把在键盘区的日期放到UITextField中
    func keyboardToolBarDownButtonClicked() {
        //获得Date对象
        let date = self.datePicker.date
        //初始化 NSDateFormate 对象
        let dateFormat = NSDateFormatter()
        //设置 NSDateFormate 对象的格式
        dateFormat.dateFormat = "yyyy-MM-dd"
        //会的日期对象格式化成字符串的值
        self.textField.text = dateFormat.stringFromDate(date)
        //收回键盘
        self.view.endEditing(true)
    }


    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    //代码创建键盘 barTool
    func codeKeyboard()
    {
        //创建 对象
        let toolBar = UIToolbar()
        //获得宽度
        let toolBarW = UIScreen.mainScreen().bounds.size.width
        //设置 toolBar的宽高,不设置不能显示
        toolBar.bounds = CGRectMake(0, 0, toolBarW, 50)
        //添加工具栏按钮
        let preButtonItem = UIBarButtonItem(title: "上一页", style: UIBarButtonItemStyle.Plain, target: nil, action: nil)
        //添加间隔
        let fixButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FixedSpace, target: nil, action: nil)
        fixButtonItem.width = 20
        //按纽
        let nextButtonItem = UIBarButtonItem(title: "下一页", style: UIBarButtonItemStyle.Plain, target: nil, action: nil)
        //添加间隔,注意这个和 fixButtonItem 的不同
        let flexiButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: nil, action: nil)
        let downtButtonItem = UIBarButtonItem(title: "down", style: UIBarButtonItemStyle.Plain, target: nil, action: nil)
        //把控件放到工具条中
        toolBar.items = [preButtonItem,fixButtonItem,nextButtonItem,flexiButtonItem,downtButtonItem]
        // 把工具条设置成当前键盘 
        self.textField.inputAccessoryView = toolBar
    }

}

标签: swift, ios控件

添加新评论