我一直在进行有关如何执行此操作的运气方面的研究,但我仍然不太了解NSdate和执行操作的方式。
我有一个应用程序,其中按下timeText(UITextField)时会弹出一个UIDatPicker,用户可以使用滚轮选择所需的时间。然后,一旦按下doneBTN(来自toolBar),它将在该文本字段上填充所需的时间。
我要寻找的是分别在Tminus3(UILabel),Tminus10(UILabel),Tminus20(UILabel)上显示,timeText(从用户中选择)的结果减去3分钟(Tminus3),减去10分钟(Tminus10),每个标签上分别为负20分钟(Tminus20)。
即,用户按下timeText并选择时间,例如11:30。当我按updateBTN时,我想获取Tminus3.text = 11:27,Tminus10.text = 11:20,Tminus20.text = 11:10的值。
这是初始代码。
提前致谢
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var timeText: UITextField!
let timePicker = UIDatePicker()
@IBOutlet weak var Tminus3: UILabel!
@IBOutlet weak var Tminus10: UILabel!
@IBOutlet weak var Tminus20: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
createTimeP()
}
func creteToolB() -> UIToolbar {
let toolbar = UIToolbar()
toolbar.sizeToFit()
let doneBTN = UIBarButtonItem(barButtonSystemItem: .done, target: nil, action: #selector(donePressed))
toolbar.setItems([doneBTN], animated: true)
return toolbar
}
func createTimeP() {
timePicker.preferredDatePickerStyle = .wheels
timePicker.datePickerMode = .time
timePicker.locale = NSLocale(localeIdentifier: "UTC") as Locale
timePicker.minuteInterval = 5
timeText.inputView = timePicker
timeText.inputAccessoryView = creteToolB()
}
@objc func donePressed() {
let timeFormatter = DateFormatter()
timeFormatter.dateStyle = .none
timeFormatter.timeStyle = .short
timeFormatter.dateFormat = "HH:mm"
self.timeText.text = timeFormatter.string(from: timePicker.date)
self.view.endEditing(true)
}
@IBAction func **updateBTN**(_ sender: Any) {
// from the timeText.text = "HH:mm" get the value —> minus3.text(label) minutes, minus10.text()label minutes, minus20.text(label) minutes.
}
}
尝试这个:
import UIKit
class tViewController: UIViewController {
@IBOutlet weak var timeText: UITextField!
let timePicker = UIDatePicker()
@IBOutlet weak var Tminus3: UILabel!
@IBOutlet weak var Tminus10: UILabel!
@IBOutlet weak var Tminus20: UILabel!
var selectedDate: Date? = nil
override func viewDidLoad() {
super.viewDidLoad()
createTimeP()
}
func creteToolB() -> UIToolbar {
let toolbar = UIToolbar()
toolbar.sizeToFit()
let doneBTN = UIBarButtonItem(barButtonSystemItem: .done, target: nil, action: #selector(donePressed))
toolbar.setItems([doneBTN], animated: true)
return toolbar
}
func createTimeP() {
timePicker.preferredDatePickerStyle = .wheels
timePicker.datePickerMode = .time
timePicker.locale = NSLocale(localeIdentifier: "UTC") as Locale
timePicker.minuteInterval = 5
timeText.inputView = timePicker
timeText.inputAccessoryView = creteToolB()
}
@objc func donePressed() {
let timeFormatter = DateFormatter()
timeFormatter.dateStyle = .none
timeFormatter.timeStyle = .short
timeFormatter.dateFormat = "HH:mm"
self.timeText.text = timeFormatter.string(from: timePicker.date)
self.selectedDate = timePicker.date
self.view.endEditing(true)
}
func getTime(date: Date) -> String {
let timeFormatter = DateFormatter()
timeFormatter.dateStyle = .none
timeFormatter.timeStyle = .short
timeFormatter.dateFormat = "HH:mm"
return timeFormatter.string(from: date)
}
@IBAction func updateBTN(_ sender: Any) {
if let selectedDate = self.selectedDate {
let tminus3Date = Calendar.current.date(byAdding: .minute, value: -3, to: selectedDate)!
let tminus10Date = Calendar.current.date(byAdding: .minute, value: -10, to: selectedDate)!
let tminus20Date = Calendar.current.date(byAdding: .minute, value: -20, to: selectedDate)!
self.Tminus3.text = getTime(date: tminus3Date)
self.Tminus10.text = getTime(date: tminus10Date)
self.Tminus20.text = getTime(date: tminus20Date)
}
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句