1

我正在尝试设置 DateTimeRow() 的开始时间,以便每当我单击日期时,DateTime 选择器时间将旋转到上午 7:30。

以下代码仅在不旋转日期选择器时更改显示文本:

row = DateTimeRow() {
    $0.minuteInterval = 30
}.onCellSelection({(cell,row) in
    if row.baseCell.detailTextLabel?.text == nil {

    // Setup the start date
    var currentDate = NSDate() as Date
    currentDate = currentDate.setHoursMinutes(hour: 7, minute: 30)
    let dateFormatter = DateFormatter()
    dateFormatter.timeStyle = .short
    dateFormatter.dateStyle = .short
    dateFormatter.locale = NSLocale.current

    // This will show the current day date with time of 7:30 AM
    row.baseCell.detailTextLabel?.text = dateFormatter.string(from: currentDate)
}

有没有办法直接访问选择器并调用 setDate 如下:

timePicker.setDate([My Date here], animated: true)

显示文本标签已更新,而日期选择器未更新

谢谢

4

1 回答 1

1

我一直在处理您的问题,首先您正在设置onCellSelection回调时的单元格,我认为您需要在单元格创建时设置您的日期值,如下所示

 <<< DateTimeRow() {
            var currentDate = Date()
            currentDate = currentDate.setHoursMinutes(hour: 7, minute: 30)
            $0.value = currentDate
            }

或者你需要使用cellSetup回调,如果你想显示不同的日期时间,那么你需要实现onCellSelection回调

<<< DateTimeRow().cellSetup({ (dateCell, dateTimeRow) in
                        // Setup the start date
                        let currentDate = Date()
                        currentDate = currentDate.setHoursMinutes(hour: 7, minute: 30)
                        dateTimeRow.dateFormatter?.dateStyle = .short
                        dateTimeRow.dateFormatter?.timeStyle = .short
                        //dateFormatter.locale = NSLocale.current
                        dateCell.row.value = currentDate
            }).onCellSelection({ (cell, row) in
                //If you want to show different date 
                let currentDate = NSDate() as Date
                currentDate.setHoursMinutes(hour: 9, minute: 30)    
                cell.datePicker.date = currentDate
            })

我希望这对你有帮助,最好的问候

于 2016-11-06T14:56:18.483 回答