neoneye/SwiftyFORM

DatePicker Shows only a value button?

IOS-Sisa opened this issue · 6 comments

Hi there,

my datepickers were working fine, but now it shows like in the screenshot, Only todays or setted value like a button in expanded view, and there are no other options - or date picker?

Edit: i ve also tried :

var datePicker: DatePickerFormItem = {
                let instance = DatePickerFormItem()
                instance.title = "Date"
                instance.datePickerMode = .date
                instance.behavior = .expandedAlways
                return instance
            }()
        builder+=datePicker
        build = builder

but this is also shows like mine, no date picker, only one date value looks like a button

Edit: by adding "datePicker.preferredDatePickerStyle = .wheels" like:

func configure(_ model: DatePickerCellModel) {
		datePicker.datePickerMode = model.datePickerMode
		datePicker.minimumDate = model.minimumDate
		datePicker.maximumDate = model.maximumDate
		datePicker.minuteInterval = model.minuteInterval
		datePicker.locale = model.resolvedLocale
		datePicker.date = model.date
        if #available(iOS 13.4, *) {
            datePicker.preferredDatePickerStyle = .wheels
        } else {
            // Fallback on earlier versions
        }
	}

shows the picker old style. But now; you can not interract with wheels, it just shows it.

datepicker

That indeed seems strange. I guess the date picker have changed in recent iOS versions. I'm investigating.

@neoneye check question please, i ve added possible solution ^^

ok problem solved;

changed :

public init() {
		super.init(style: .default, reuseIdentifier: nil)
        **self.contentView.addSubview(datePicker)**
	}

and

func configure(_ model: DatePickerCellModel) {
		datePicker.datePickerMode = model.datePickerMode
		datePicker.minimumDate = model.minimumDate
		datePicker.maximumDate = model.maximumDate
		datePicker.minuteInterval = model.minuteInterval
		datePicker.locale = model.resolvedLocale
		datePicker.date = model.date
        **if #available(iOS 13.4, *) {
            datePicker.preferredDatePickerStyle = .wheels
        } else {
            // Fallback on earlier versions
        }**
	}

Thank you very much @IOS-Sisa I'm adding your changes.

There is now a version 1.8.5 that contains your fix. Please let me know if there are problems with it.

Thanks a lot, will do.