我有一个textField
,它的inputView
是UIDatePicker
当UIDatePicker
设置为UITextField.inputView
时,使用.inline
仍然可以正常工作,但主要问题是由于某种原因UIKit将键盘高度硬限制为某些(似乎)计算值
由于UI是使用全宽布局的,这会将选择器的标题视图推到类似6pt的位置,从而使其无法使用,因为您无法轻松地点击以更改月/年。
这里你可以看到
x1c 0d1x的数据
要解决这个问题,你可以设置:
datePicker.preferredDatePickerStyle = .wheels
字符串
的
你知道是否有一种方法仍然可以使用.inline
和仍然可以使用UIDatePicker()
?
1条答案
按热度按时间j8ag8udp1#
我一直在处理同样的问题,最近找到了答案:基本上,
UIDatePicker()
的.inline
风格并不是UITextField()
的inputView
风格。你看到的显示行为实际上是正确的,因为.inline
风格的行为符合Apple的预期。这种样式要求您也使用
UIDatePicker()
,而不是UITextField()
,将当前日期值作为UI的一部分内联显示。因此,当您将其作为inputView
调用时,输入视图实际上显示的是当前值。这并不是说选择器以某种方式被压扁或强制关闭屏幕。当您点击该值时,(如果你的手指足够小,哈哈),它将显示日历选择器,日历选择器将按照你所期望的那样工作。我在我的答案here中详细说明了这一点。我认为如果你想要日历选择器,你将不得不使用
UIDatePicker()
来显示值,而不是UITextField()
。否则你会被.wheels
卡住。