损坏的内联 datePicker 作为 TextField Swift iOS 14 的 InputView

Posted

技术标签:

【中文标题】损坏的内联 datePicker 作为 TextField Swift iOS 14 的 InputView【英文标题】:Broken inline datePicker as InputView for TextField Swift iOS 14 【发布时间】:2021-07-18 10:14:14 【问题描述】:

我使用 ios 13.4 提供的新内联日期选择器作为文本字段的 inputView(在我使用***之前)。但是,由于 inputView 的高度是恒定的,它看起来很糟糕:How it looks

我已尝试更改框架并禁用 AutoResizingMaskIntoConstraints。它没有帮助。它应该工作的方式就像一个默认的内联 datePicker。 How dataPicker should look like

综上所述,我需要为 UITextField 增加自定义 InputView 的高度。

【问题讨论】:

“它看起来坏了”是因为“inputView 的高度是恒定的”吗?如果是这样,您的问题是:如何更改 inputView 的高度? 感谢您的评论。不好意思,忘记总结了。是的,主要关心的是如何为 UITextField 增加自定义 InputView 的高度。谢谢! 编辑您的问题以“总结”可能会有所帮助。有时可能会回答您的问题的人不会阅读 cmets。 我明白了。谢谢;) 【参考方案1】:

我猜它受限于 inputView 的默认高度。 只需更改它的大小即可。

// You can change value as you want. I think same with screen width is better for me. 
let scrWidth = UIScreen.main.bounds.width
textfield.inputView?.frame.size = CGSize(width: scrWidth, height: scrWidth)
// Changing CGRect also can work
textfieldinputView?.frame = CGRect(x: 0, y: 0, width: scrWidth , height: scrWidth)

Result like this

有趣的是,我在SE1上测试时,没有使用上述方法,显示正常,inputView大小为320*353.3

inputView on SE1

但其他设备的高度大于它会限制在某个值(IDK是什么参考。)

这里的限制是 355.666667,大小是 414*355.6667

inputView on 11 Pro Max

这就是为什么我猜 dataPicker 在放大时会被裁剪。

【讨论】:

以上是关于损坏的内联 datePicker 作为 TextField Swift iOS 14 的 InputView的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI DatePicker 应该是可编辑的内联

更改 jquery datepickers 内联

jQueryUI 内联 DatePicker 直到我更改月份后才起作用

Bootstrap Datepicker - 从内联/嵌入式版本中选择日期

Yii2 kartik datepicker 多个内联

如何使 bootstrap-ui datepicker 和 timepicker 内联?