UIDatePicker 作为 UITextField.inputView 未正确显示

问题描述 投票:0回答:1

我有一个

textField
和它的
inputView
作为
UIDatePicker

.inline
设置为
UIDatePicker
时,使用
UITextField.inputView
仍然可以正常工作,但主要问题是由于某种原因UIKit将键盘高度硬限制为某些(看起来像)计算值

因为 UI 布局为使用全宽,这会将选取器的标题视图推至 6pt 之类的位置,从而使其无法使用,因为您无法轻松点击来更改月份/年份。

在这里你可以看到它

要解决此问题,您只需设置:

datePicker.preferredDatePickerStyle = .wheels

你知道是否有一种方法仍然可以使用

.inline
并且仍然可以使用
UIDatePicker()

ios swift xcode uidatepicker
1个回答
0
投票

我一直在处理同样的问题,最近找到了答案:基本上,

.inline
UIDatePicker()
风格并不是为了充当
inputView
UITextField()
的功能。您看到的显示行为实际上是正确的,因为
.inline
样式的行为符合 Apple 的预期。

此样式希望您还使用

UIDatePicker()
,而不是
UITextField()
,将当前日期值内联显示为 UI 的一部分。因此,当您将其称为
inputView
时,该输入视图实际上正在显示当前值。这并不是说选择器被某种方式压扁或被迫离开屏幕。当您点击该值时(如果您的手指足够小,哈哈),它将显示日历选择器,并且日历选择器将按照您的预期运行。

我在我的回答中详细介绍了这一点这里。我认为如果您想要日历选择器,您还必须使用

UIDatePicker()
来显示值,而不是
UITextField()
。否则你就会陷入
.wheels

© www.soinside.com 2019 - 2024. All rights reserved.