3

我花了一些时间研究如何制作我的第一个 watchOS Complication。起初我根本无法让它发挥作用,我不断尝试,最终得到了一些结果。但是,我的复杂功能仅在短时间内起作用,然后将自身重置为默认占位符。

苹果手表截图 1 Apple Watch 截图 2. 通知有 2 个动作 苹果手表截图 3。 苹果手表截图 4。

第一个屏幕截图显示了当您强制触摸表盘时会发生什么。第二个是按下 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 上编写的。

如果您无法使复杂功能发挥作用,请查看此列表。

  1. 数据源类需要$(PRODUCT_MODULE_NAME).前缀。看看下面的 Xcode 截图。
  2. 仅针对您支持的并发症启用受支持的家庭。
  3. 项目 > 构建设置 > 打包 > 定义模块应设置为YES.
  4. 项目 > 构建设置 > 搜索路径 > 始终搜索用户路径应设置为NO.
  5. 确保类ComplicationController符合CLKComplicationDataSource协议。由于某种原因,我的模板没有它。
  6. 您的并发症图像需要具有正确的尺寸。
  7. 仅在运行项目之前选择绿色的 Complication 目标。
  8. 重置两个模拟器的内容和设置。

Xcode 截图

我错过了什么?为什么我的 Complication 在模拟器中消失了,并且根本没有出现在真实硬件上?

4

0 回答 0