我花了一些时间研究如何制作我的第一个 watchOS Complication。起初我根本无法让它发挥作用,我不断尝试,最终得到了一些结果。但是,我的复杂功能仅在短时间内起作用,然后将自身重置为默认占位符。
第一个屏幕截图显示了当您强制触摸表盘时会发生什么。第二个是按下 command + shift + H 后的一个非常短暂的时刻。第三个屏幕截图显示默认占位符,并显示以下日志消息:
扩展收到唤醒复杂功能支持的请求。
最后一个屏幕截图是当您滚动浏览并发症列表时。
我正在使用标准ComplicationController.swift
模板。我唯一定制的是这种方法:
func getPlaceholderTemplateForComplication(complication: CLKComplication, withHandler handler: (CLKComplicationTemplate?) -> Void) {
let tmpl = CLKComplicationTemplateModularLargeStandardBody()
let drop = UIImage(named: "drop")
tmpl.headerImageProvider = CLKImageProvider(onePieceImage: drop!)
tmpl.headerTextProvider = CLKSimpleTextProvider(text: "Drink water")
tmpl.body1TextProvider = CLKSimpleTextProvider(text: "Hidrating helps to stay helthy")
handler(tmpl)
}
iOS 应用是在 Objective-C 和 Apple Watch 应用和扩展——Swift 上编写的。
如果您无法使复杂功能发挥作用,请查看此列表。
- 数据源类需要
$(PRODUCT_MODULE_NAME).
前缀。看看下面的 Xcode 截图。 - 仅针对您支持的并发症启用受支持的家庭。
- 项目 > 构建设置 > 打包 > 定义模块应设置为
YES
. - 项目 > 构建设置 > 搜索路径 > 始终搜索用户路径应设置为
NO
. - 确保类
ComplicationController
符合CLKComplicationDataSource
协议。由于某种原因,我的模板没有它。 - 您的并发症图像需要具有正确的尺寸。
- 仅在运行项目之前选择绿色的 Complication 目标。
- 重置两个模拟器的内容和设置。
我错过了什么?为什么我的 Complication 在模拟器中消失了,并且根本没有出现在真实硬件上?