2
A
回答
7
的OP說,他正在試圖重新在斯威夫特this answer。這個問題的答案是雜牌組裝電腦(這取決於使用24小時格式,而不是真正解決問題丹麥環境),但在這裏,你會怎麼做,在斯威夫特:
var datePicker = UIDatePicker() // Although you probably have an IBOutlet
datePicker.datePickerMode = UIDatePickerMode.Time
datePicker.locale = NSLocale(localeIdentifier: "da_DK")
但這是一個雜牌 - 推出自己的UIPicker
!
UPDATE 的OP說,滾你自己是「麻煩」 - 這其實真的很簡單 - 這裏有一個簡單的方法來做到這一點(雖然一個更好的辦法是繼承UIPickerView
)...
import UIKit
class ViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource {
@IBOutlet weak var myDatePicker: UIPickerView!
private var calendar = Calendar.autoupdatingCurrent
override func viewDidLoad() {
super.viewDidLoad()
self.time = Date() // updates the picker to "now"
}
// MARK: UIPickerViewDataSource
func numberOfComponents(in: UIPickerView) -> Int { return 2 }
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
if component == 0 { // Hours
return 24
}
return 12 // five minute intervals
}
// MARK: UIPickerViewDelegate
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
if component == 0 { // Hours
return String(format: "%02d", row)
}
return String(format: "%02d", row * 5)
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
print("picker changed, selected \(self.time)")
}
// MARK: Getting & setting the time
var time: Date {
get {
let unitFlags: Calendar.Unit = [.year, .day, .hour, .minute, .second]
var components = self.calendar.components(unitFlags, from: Date())
components.hour = self.myDatePicker.selectedRow(inComponent: 0)
components.minute = self.myDatePicker.selectedRow(inComponent: 1) * 5
components.second = 0
if let date = self.calendar.date(from: components) {
return date
}
return Date() // shouldn't get here
}
set {
var components = self.calendar.components([.hour, .minute], from: newValue)
if let hour = components.hour, let minute = components.minute {
self.myDatePicker.selectRow(hour, inComponent: 0, animated: true)
self.myDatePicker.selectRow(minute/5, inComponent: 1, animated: true)
}
}
}
}
相關問題
- 1. DatePicker在Swift中調用didSelectRowATIndexPath
- 2. 24小時數= 24個值
- 3. SWIFT 2.2 DatePicker中的最小和最大小時
- 4. AppCache 24小時?
- 5. Swift:12hr時間轉換爲24小時當設備在12小時的隊友
- 6. 約24小時12小時
- 7. 在sqoop導入中使用24小時時間戳
- 8. 在R中使用大於24小時的時間值
- 9. 如何使用超過24小時
- 10. 我在做24小時制
- 11. 24小時DateTime在C#
- 12. 從24小時格式刪除冒號格式時間在jquery datepicker
- 13. Moment.js 24小時時間格式,處理第24小時
- 14. 的UIDatePicker 24小時
- 15. SimpleDateFormat的24小時
- 16. Highcharts 24小時制
- 17. 過去24小時
- 18. FileMover 24小時 - Python
- 19. 24小時和uiDatePicker
- 20. 如何在24小時內扣除時間使用時刻
- 21. 如何在PHP中使用12小時和24小時之間的轉換?
- 22. 我想在iOS上使用datePicker swift
- 23. 在android中獲得24小時差異
- 24. 在fullcalendar中24小時格式
- 25. 如何在LINUX中阻塞24小時IP地址使用iptables
- 26. Xcode swift:如何禁用一個按鈕,並在24小時後重新啓用?
- 27. 使用javascript轉換24小時格式爲12小時格式
- 28. 如何使用java將12小時轉換爲24小時
- 29. 使用javascript轉換12小時至24小時格式
- 30. 查找一段24小時(未尤其是最後24小時)
你會如何在Objective-C中做到這一點?你在Swift中嘗試過什麼? – Grimxn
我一直在使用這篇文章中顯示的方法http://stackoverflow.com/questions/2140388/how-to-disable-am-pm-in-uidatepicker不知道如何攜帶,以迅速 – Prateek