使用UIDatePicker更新UILabel

时间:2015-12-06 22:44:34

标签: ios uilabel uidatepicker swift2.1

有谁知道如何使用UILabel更新UIDatePicker

我刚刚在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
}

2 个答案:

答案 0 :(得分:0)

您需要在标签上添加插座,然后只需在updateView方法中添加代码,以设置标签的文字以及文字字段的文字。 (您可能应该重构它以将日期存储到String中,然后将该字符串分配给文本字段和标签。)

答案 1 :(得分:0)

func textFieldDidEndEditing(textField: UITextField) {
    label.text = textField.text
}