【问题标题】:Swift iOS14 DatePicker text alignmentSwift iOS14 DatePicker 文本对齐
【发布时间】:2021-01-31 18:05:11
【问题描述】:

我希望我的日期选择器显示右对齐的文本,因为它包含在右对齐的 tableView 中。我正在使用 iOS 14 默认样式选择日期选择器最终在弹出窗口中选择日期,因此默认情况下,当弹出窗口未显示时标签左对齐。 我尝试使用datePicker.contentHorizontalAlignment = .right,但没有任何改变。 有没有其他方法可以改变对齐方式,因为它看起来很奇怪?

【问题讨论】:

  • 你确定你的约束吗?
  • 四个边都设置了约束,否则灰色矩形会不一样
  • 想要移动整个灰框区域的可以右锚日期选择器,然后调用.sizeToFit()设置宽度

标签: swift uidatepicker ios14


【解决方案1】:

没有明确的方法可以做到这一点,因为小部件本身似乎不支持内容对齐; 但是:我找到了一种适用于 iOS当前的方法。在某些时候,日期选择器会创建一个 UILabel,看似带有“领先”约束,无论内容对齐如何。但是,我们可以通过巧妙地使用 semanticContentAttribute 来覆盖“领先”的含义。

datePicker.semanticContentAttribute = .forceRightToLeft
datePicker.subviews.first?.semanticContentAttribute = .forceRightToLeft
  1. 此代码不会使应用崩溃,即使小部件发生更改,它也会安全地访问第一个子视图并在其上设置官方 API。
  2. 它适用于 iOS 14.2;和
  3. 假设,在 iOS 14.3 或 15+ 中,Apple 更改了小部件结构,使得这个技巧不起作用,可能是因为有另一个嵌套视图,所有可能发生的情况就是布局恢复到默认值。

可能只需要第二行代码,但我的第一次尝试是使用第一行,但没有成功,所以我添加了第二行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-04
    • 2020-07-12
    • 2023-04-08
    • 2022-07-20
    • 2015-02-12
    • 2020-05-23
    相关资源
    最近更新 更多