Apple Watch 复杂功能色调颜色

Posted

技术标签:

【中文标题】Apple Watch 复杂功能色调颜色【英文标题】:Apple Watch Complication Tint Color 【发布时间】:2017-09-25 16:36:47 【问题描述】:

我正在尝试为并发症模板图像添加色调。当我滚动选项以自定义我的表盘时,色调颜色是正确的。但是,一旦我选择了复杂功能并返回到正常的表盘状态,颜色就会变回白色。

- (void)getLocalizableSampleTemplateForComplication:(CLKComplication *)complication withHandler:(void(^)(CLKComplicationTemplate * __nullable complicationTemplate))handler 
  CLKComplicationTemplateModularSmallSimpleImage *modularTemplate = [[CLKComplicationTemplateModularSmallSimpleImage alloc] init];
  CLKImageProvider *imageProvider = [CLKImageProvider imageProviderWithOnePieceImage:[UIImage imageNamed:@"Complication/Modular"]];
  imageProvider.tintColor  = [UIColor colorWithRed:0.412 green:0.443 blue:0.773 alpha:1.000];
  modularTemplate.imageProvider = imageProvider;
  handler(modularTemplate);

定制: Tint is correct while customizing

选择并发症后: Tint is gone and it's back to a white image

【问题讨论】:

您问题中的函数只处理选择并发症时显示的 模板。您需要在准备实际复杂数据的函数中复制相同的行为。 @DávidPásztor 谢谢。成功了! 【参考方案1】:

正如大卫在 cmets 中提到的,问题中的函数只处理 模板,您需要在准备实际复杂数据的函数中复制相同的行为。

添加以下代码以使色调颜色在选择阶段后保持不变:

- (void)getCurrentTimelineEntryForComplication:(CLKComplication *)complication withHandler:(void(^)(CLKComplicationTimelineEntry * __nullable))handler 
  CLKComplicationTemplateModularSmallSimpleImage *template = [[CLKComplicationTemplateModularSmallSimpleImage alloc] init];
  CLKImageProvider *imageProvider = [CLKImageProvider imageProviderWithOnePieceImage:[UIImage imageNamed:@"Complication/Modular"]];
  imageProvider.tintColor  = [UIColor colorWithRed:0.412 green:0.443 blue:0.773 alpha:1.000];
  template.imageProvider = imageProvider;
  handler([CLKComplicationTimelineEntry entryWithDate:[NSDate date] complicationTemplate:template]);

【讨论】:

以上是关于Apple Watch 复杂功能色调颜色的主要内容,如果未能解决你的问题,请参考以下文章

自定义时复杂功能会冻结 Apple Watch

为啥我的 Apple Watch 复杂功能不显示任何内容?

将 GraphicCircular Apple Watch 复杂功能添加到现有 Xcode 项目

从 Apple Watch 复杂功能获取核心位置数据的最佳方式?

如何监控Apple Watch Face 上的计时器?

Apple Watch 上的并发症不显示我的信息