是否可以为 UIDatePicker.Mode 编写 Swift 扩展

Is it possible to write a Swift Extension for UIDatePicker.Mode

Apple documentation 开始,UIDatePicker.ModeInt 类型的 enum,有四种情况。

enum Mode : Int

case time
case date
case dateAndTime
case countDownTimer

我很想知道我是否可以添加第五个 case monthYear (= 4) 以使我能够创建 UIDatePicker 的自定义实现。

第五种情况的目的是在选择器控件中仅显示月份和年份滚轴。

(请注意,我知道我可以 - 并且很可能会 - 创建一个自定义 UIPickerView 来处理这个问题,但是我很想知道我是否可以优雅地扩展 UIDatePicker class 或 UIDatePicker.Mode 枚举来实现这一点。)

我阅读了一些有关为 enum 编写 extension 的资料。我阅读了一些有趣的文章并回顾了一些 Stack Overflow 问答,其中包括有效的解决方法...

所以以我的愚见,为了能够巧妙地扩展 UIDatePicker,我首先需要能够扩展 UIDatePicker.Mode.

我还阅读了 Apple documentation 标题下的 外观...

The appearance of UIDatePicker is not customizable.

这对我来说似乎相当确定,但是问这个问题也没什么坏处...

是否可以为 UIDatePicker.Mode 编写一个 Swift 扩展,以便我可以添加第五个 case monthYearUIDatePicker 以便我可以编写自定义实现在控件中只显示月份和年份滚轮?

不,您不能修改 UIDatePicker 的功能以支持您自己的自定义模式。

您需要使用 UIPickerView 实现您自己的自定义日期选择器,或者找到已经这样做的第 3 方组件。