除非我也启用所有其他复杂功能,否则Apple Watch简单的“ Modular Large”并发症不会显示在自定义屏幕上

时间:2018-12-12 23:04:19

标签: ios watchkit apple-watch watch-os-2 watch-os

我正在测试并能够在一个非常简单的应用程序中重现它。我正在观看WWDC 2015视频:https://developer.apple.com/videos/play/wwdc2015/209/

另一个使用相同信息的教程是:https://www.bignerdranch.com/blog/watchkit-2-complications/

就像WWDC视频一样,我希望我的应用仅提供CLKComplicationTemplateModularLargeStandardBody并发症。因此,在扩展程序的目标常规设置中,我仅启用了Modular Large

enter image description here

对于一个简单的测试,我只添加了占位符的代码:

- (void)getLocalizableSampleTemplateForComplication:(CLKComplication *)complication withHandler:(void(^)(CLKComplicationTemplate * __nullable complicationTemplate))handler {
    // This method will be called once per supported complication, and the results will be cached
    NSLog(@"getLocalizableSampleTemplateForComplication: %ld",(long)complication.family);

    if (complication.family==CLKComplicationFamilyModularLarge) {
        CLKComplicationTemplateModularLargeStandardBody *template = [[CLKComplicationTemplateModularLargeStandardBody alloc] init];
        template.headerTextProvider=[CLKSimpleTextProvider textProviderWithText:@"Date"];
        template.body1TextProvider=[CLKSimpleTextProvider textProviderWithText:@"Class"];
        template.body2TextProvider=[CLKSimpleTextProvider textProviderWithText:@"Location"];
        handler(template);
    } else {
        handler(nil);
    }
}

此后,我删除甚至重置了iPhone和Watch模拟器。然后运行该应用程序。在Infograph Modular表盘的表的自定义屏幕中,我看不到我的应用程序可用。

enter image description here

一个有趣的东西(错误?),我注意到,如果我进入扩展程序的常规设置并启用所有复杂功能,它将显示出来。

enter image description here

但是我不想提供其他类型的并发症。我只想为我的应用程序提供Modular Large。这是错误吗?

我注意到的另一件事是占位符显示--------而不是我提供的TextProvider模板。这是另一个错误吗?

我已重置模拟器,从手表和iPhone上删除了我的应用很多次,没有解决方案。重置后,我的NSLog的{​​{1}}确实可以打印,但是复杂性没有出现在自定义屏幕中。

1 个答案:

答案 0 :(得分:-1)

上述表盘的复杂功能系列是 CLKComplicationFamilyGraphicRectangular。所以用它来更新值和占位符文本