watchOS 10 Beta中WKInterfaceController标题左对齐解决方案咨询
解决watchOS 10中WKInterfaceController标题布局变更问题(Objective-C)
watchOS 10 Beta 7 对WKInterfaceController的导航栏布局做了默认调整,导致标题不再与右上角时间同排,而是移至时间下方占用两行空间。要恢复watchOS 9的左对齐同排效果,可通过以下两种方式实现:
一、代码方式设置(推荐全局统一处理)
在你的WKInterfaceController子类中,添加导航栏样式设置代码,建议放在willActivate方法中:
- (void)willActivate { [super willActivate]; // 仅在watchOS 10及以上版本生效,避免旧系统崩溃 if (@available(watchOS 10.0, *)) { // 设置为Compact样式,恢复watchOS9的标题布局 self.preferredNavigationBarStyle = WKNavigationBarStyleCompact; } }
如果应用内多个界面都需要恢复该布局,可以创建一个基类BaseWKInterfaceController,将上述代码放在基类中,所有界面控制器继承该基类即可统一生效。
二、Interface Builder可视化设置
- 打开对应的
.storyboard或.xib文件,选中目标WKInterfaceController; - 在右侧Attributes Inspector(属性检查器)中,找到Navigation Bar Style选项;
- 选择Compact样式,即可恢复watchOS 9的标题布局。
说明
WKNavigationBarStyleCompact是watchOS 10新增的样式枚举值,专门用于兼容旧版导航栏布局;而默认的WKNavigationBarStyleProminent则是watchOS 10的新布局样式。通过版本判断代码,可以确保应用在watchOS 9及以下版本仍能正常运行。
内容的提问来源于stack exchange,提问作者geolives
相关产品推荐
相关产品推荐

