UIDatePicker - 日付取得 (文字の色を無理矢理変更)
説明
UIDatePickerはUIControlのサブクラス
文字の色の設定がデフォルトではできなかったため,無理矢理文字の色を変えてみた.
ソースコード
UIDatePickerSample.swift
import UIKit class UIDatePickerSample: UIView { // 文字色を変更するためのUIDatePickerのサブクラス // !!! これはAppleの意図したやり方ではない !!! class MYDatePicker: UIDatePicker { override init(frame: CGRect) { super.init(frame: frame) self.setValue(colorPattern.accent(), forKey: "textColor") } required init(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } } override init(frame: CGRect) { super.init(frame: frame) self.backgroundColor = colorPattern.back() let dp = MYDatePicker(frame: CGRectMake(0, 0, 200, 200)) self.addSubview(dp) dp.center = self.center // 形式を指定(Time, Date, DateAndTime, CountDownTimer) dp.datePickerMode = UIDatePickerMode.DateAndTime // 値が変わった時の処理を指定 dp.addTarget(self, action: "datePickerChanged:", forControlEvents: UIControlEvents.ValueChanged) } func datePickerChanged(sender: UIDatePicker) { // 取得したものを表示 println(sender.date) } required init(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } }
ViewController.swift
import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() self.view.backgroundColor = colorPattern.back() self.view.addSubview(UIDatePickerSample(frame: self.view.frame)) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } }