我有一个
textField
和它的 inputView
作为 UIDatePicker
当
.inline
设置为UIDatePicker
时,使用UITextField.inputView
仍然可以正常工作,但主要问题是由于某种原因UIKit将键盘高度硬限制为某些(看起来像)计算值
因为 UI 布局为使用全宽,这会将选取器的标题视图推至 6pt 之类的位置,从而使其无法使用,因为您无法轻松点击来更改月份/年份。
在这里你可以看到它
要解决此问题,您只需设置:
datePicker.preferredDatePickerStyle = .wheels
你知道是否有一种方法仍然可以使用
.inline
并且仍然可以使用UIDatePicker()
?
我一直在处理同样的问题,最近找到了答案:基本上,
.inline
的UIDatePicker()
风格并不是为了充当inputView
的UITextField()
的功能。您看到的显示行为实际上是正确的,因为 .inline
样式的行为符合 Apple 的预期。
此样式希望您还使用
UIDatePicker()
,而不是 UITextField()
,将当前日期值内联显示为 UI 的一部分。因此,当您将其称为 inputView
时,该输入视图实际上正在显示当前值。这并不是说选择器被某种方式压扁或被迫离开屏幕。当您点击该值时(如果您的手指足够小,哈哈),它将显示日历选择器,并且日历选择器将按照您的预期运行。
我在我的回答中详细介绍了这一点这里。我认为如果您想要日历选择器,您还必须使用
UIDatePicker()
来显示值,而不是 UITextField()
。否则你就会陷入.wheels
。