neoneye / SwiftyFORM

iOS framework for creating forms
MIT License
1.07k stars 87 forks source link

DatePicker Shows only a value button? #50

Closed IOS-Sisa closed 3 years ago

IOS-Sisa commented 3 years ago

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

neoneye commented 3 years ago

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

IOS-Sisa commented 3 years ago

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

IOS-Sisa commented 3 years ago

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
        }**
    }
neoneye commented 3 years ago

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

neoneye commented 3 years ago

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

IOS-Sisa commented 3 years ago

Thanks a lot, will do.