使用 UIDatePicker 更新 UILabel
Update UILabel with UIDatePicker
有谁知道如何用 UIDatePicker
更新 UILabel
?
我刚在Objective C看到这个,我没看懂,我是新手。
谢谢。
查看我的代码:
@IBOutlet weak var inicioTextField: UITextField!
{
didSet
{
inicioTextField.delegate = self
}
}
// CONFIGURAÇÃO DA DATA DO DATEPICKER
lazy var dateFormatter: NSDateFormatter =
{
let df = NSDateFormatter()
df.dateStyle = .ShortStyle
df.timeStyle = .NoStyle
return df
}()
lazy var datePicker: UIDatePicker =
{
let dp = UIDatePicker()
dp.datePickerMode = .Date
dp.addTarget(self, action: Selector("datePickerValueChanged:"), forControlEvents: .ValueChanged)
return dp
}()
lazy var toolbar: UIToolbar =
{
let tb = UIToolbar()
let flexibleSpace = UIBarButtonItem(barButtonSystemItem: .FlexibleSpace, target: nil, action: nil)
let dismissKeyboardButton = UIBarButtonItem(title: "OK", style: .Plain, target: self, action: Selector("dismissKeyboard"))
tb.setItems([flexibleSpace, dismissKeyboardButton, flexibleSpace], animated: false)
tb.sizeToFit()
tb.barStyle = .Default
tb.tintColor = UIColor(red: 220/255, green: 20/255, blue: 60/255, alpha: 1)
return tb
}()
var inicioDate = NSDate()
{
didSet
{
updateView()
}
}
override func viewDidLoad()
{
super.viewDidLoad()
updateView()
}
// CONFIGURAÇÃO DOS DATEPICKER
func datePickerValueChanged(sender: UIDatePicker)
{
inicioDate = datePicker.date
}
private func updateView()
{
inicioTextField.text = dateFormatter.stringFromDate(inicioDate)
}
最后,在扩展委托中:
func textFieldShouldBeginEditing(textField: UITextField) -> Bool
{
textField.inputView = datePicker
textField.inputAccessoryView = toolbar
datePicker.date = inicioDate
return true
}
您需要为您的标签添加一个出口,然后只需在您的 updateView
方法中添加代码来设置标签的文本以及您的文本字段的文本。 (您可能应该重构它以首先将日期存储到字符串中,然后将该字符串分配给您的文本字段和标签。)
func textFieldDidEndEditing(textField: UITextField) {
label.text = textField.text
}
有谁知道如何用 UIDatePicker
更新 UILabel
?
我刚在Objective C看到这个,我没看懂,我是新手。
谢谢。
查看我的代码:
@IBOutlet weak var inicioTextField: UITextField!
{
didSet
{
inicioTextField.delegate = self
}
}
// CONFIGURAÇÃO DA DATA DO DATEPICKER
lazy var dateFormatter: NSDateFormatter =
{
let df = NSDateFormatter()
df.dateStyle = .ShortStyle
df.timeStyle = .NoStyle
return df
}()
lazy var datePicker: UIDatePicker =
{
let dp = UIDatePicker()
dp.datePickerMode = .Date
dp.addTarget(self, action: Selector("datePickerValueChanged:"), forControlEvents: .ValueChanged)
return dp
}()
lazy var toolbar: UIToolbar =
{
let tb = UIToolbar()
let flexibleSpace = UIBarButtonItem(barButtonSystemItem: .FlexibleSpace, target: nil, action: nil)
let dismissKeyboardButton = UIBarButtonItem(title: "OK", style: .Plain, target: self, action: Selector("dismissKeyboard"))
tb.setItems([flexibleSpace, dismissKeyboardButton, flexibleSpace], animated: false)
tb.sizeToFit()
tb.barStyle = .Default
tb.tintColor = UIColor(red: 220/255, green: 20/255, blue: 60/255, alpha: 1)
return tb
}()
var inicioDate = NSDate()
{
didSet
{
updateView()
}
}
override func viewDidLoad()
{
super.viewDidLoad()
updateView()
}
// CONFIGURAÇÃO DOS DATEPICKER
func datePickerValueChanged(sender: UIDatePicker)
{
inicioDate = datePicker.date
}
private func updateView()
{
inicioTextField.text = dateFormatter.stringFromDate(inicioDate)
}
最后,在扩展委托中:
func textFieldShouldBeginEditing(textField: UITextField) -> Bool
{
textField.inputView = datePicker
textField.inputAccessoryView = toolbar
datePicker.date = inicioDate
return true
}
您需要为您的标签添加一个出口,然后只需在您的 updateView
方法中添加代码来设置标签的文本以及您的文本字段的文本。 (您可能应该重构它以首先将日期存储到字符串中,然后将该字符串分配给您的文本字段和标签。)
func textFieldDidEndEditing(textField: UITextField) {
label.text = textField.text
}