我的UIDatePicker存在问题:
当它首次出现在视图中时,您会在屏幕截图中看到
UIDatePicker的初始值表示今天下午3:00,但如果我点击完成按钮,标签显示3:07(这是实际时间)。 我希望Label与UIDatePicker显示相同的时间。
这是我的代码:
override func viewDidLoad() {
super.viewDidLoad()
myDatePicker.minuteInterval = 15
}
@IBAction func datePickerAction(sender: AnyObject) {
var dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "dd-MM-yyyy HH:mm"
var strDate = dateFormatter.stringFromDate(myDatePicker.date)
self.selectedDate.text = strDate
}
答案 0 :(得分:4)
您需要首先将初始日期调整为离散分钟数量。一旦你更改值,我确定你的日期选择器工作得很好,对吗?当您将日期选择器设置为日期(如3:07)但日期选择器设置为仅显示15分钟的增量时,它将显示3:00,但设置日期仍为3:07。
let allUnits = NSCalendarUnit(rawValue: UInt.max)
let components = NSCalendar.currentCalendar().components(allUnits, fromDate: NSDate())
var minute = components.minute
minute = (minute / 15) * 15
components.minute = minute
let datePickerDate = NSCalendar.currentCalendar().dateFromComponents(components)
这总是会向下舍入分钟数(如果minute % 15 > 7
可能需要向上舍入,然后考虑向上舍入到60
),但你明白了。