繁体   English   中英

我想通过Swift在IOS上制作datePicker

[英]I want to make datePicker on IOS by swift

我是IOS的新开发人员。 如今,我通过书籍学习Swift。 有麻烦。 我使用swift3,但本书包含swift2。 所以我不知道什么是错误的代码。 你可以帮帮我吗? 感谢您阅读和帮助我。

这是数据代码。

import UIKit

class ViewController: UIViewController {

    let timeSelector: Selector = #selector(ViewController.updateTime)
    let interval = 1.0
    var count = 0
    @IBOutlet weak var IbICurrentTime: UILabel!
    @IBOutlet weak var IbIPickTime: UILabel!

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

        Timer.scheduledTimer(withTimeInterval: interval, repeats: true, block: timeSelector)
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    @IBAction func changeDatePicker(_ sender: UIDatePicker) {
        let datePickerView = sender
        let formatter = DateFormatter()
        formatter.dateFormat = "YYYY-MM-dd HH:mm:ss EEE"
        IbIPickTime.text = "선택시간: " + formatter.string(from: datePickerView.date)
    }
    func updateTime() {
        IbICurrentTime.text = String(count)
        count = count+1
    }

}

有问题

Timer.scheduledTimer(withTimeInterval: interval, repeats: true, block: timeSelector)
    }

我不知道在“块”中必须输入什么?

“块”是Swift闭包的Objective-C术语。 “块”变体的工作方式如下:

Timer.scheduledTimer(timeInterval: interval, repeats: true, block: { timer in
    self.IbICurrentTime.text = String(self.count)
    self.count += 1
})

您无需使用块语法定义单独的updateTime()函数。

在Swift中,上述内容可以更自然地写为

Timer.scheduledTimer(timeInterval: interval, repeats: true) { _ in
    self.IbICurrentTime.text = String(self.count)
    self.count += 1
}

如果要使用选择器,请改用scheduled​Timer(time​Interval:​target:​selector:​user​Info:​repeats:​)

Timer.scheduledTimer(time​Interval: interval,
                     target: self,
                     selector: #selector(updateTime),
                     userInfo: nil,
                     repeats: true)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM