Xcode13编译iOS15应用时UIDatePicker出现右对齐异常问题
Xcode13 编译后 UIDatePicker 右对齐异常修复方案
该问题是 Xcode 13 链接 iOS 15 SDK 后的已知共性问题,大量开发者均遇到过同类故障。
触发根因
iOS 15 SDK 对 UIDatePicker 的默认 contentMode 属性值做了未公开的变更:
- 旧版 Xcode 编译时会沿用旧 SDK 的默认对齐逻辑,因此此前发布到 App Store 的版本哪怕运行在 iOS 15 设备上也不会出现异常
- Xcode 13 编译后会触发新的默认逻辑,即使约束配置完全正确,也会出现右对齐偏移问题
异常效果参考:
对应约束配置参考:
修复方案
以下方案均兼容 iOS 12 及以上系统版本,不会影响旧版本设备的展示效果:
- 方案1:单控件代码适配
在 UIDatePicker 所属控制器的viewDidLoad方法中添加对应代码即可:
Swift 版本:
datePicker.contentMode = .left
Objective-C 版本:
self.datePicker.contentMode = UIViewContentModeLeft;
- 方案2:可视化配置适配
打开对应 Storyboard/XIB 文件,选中异常的 UIDatePicker 控件,在属性检查器面板中将 Content Mode 选项从默认值修改为Left即可,无需编写代码。 - 方案3:全局批量适配
如果项目中多处使用 UIDatePicker 控件,可在 App 启动入口统一设置外观代理,避免逐个修改:
// 放在 AppDelegate 的 didFinishLaunchingWithOptions 方法中即可 UIDatePicker.appearance().contentMode = .left
内容的提问来源于stack exchange,提问作者KBog
相关产品推荐
相关产品推荐

