2017-09-25 324 views
1

我正在尝试为复杂模板图像添加色调颜色。当我滚动选项来自定义我的表盘时,色调是正确的。但是,一旦我选择复杂功能并返回正常表盘状态,颜色将切换回白色。Apple Watch Complication Tint Color

- (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

+0

在你的问题的功能只选择一种并发症时所显示的__template__的照顾。您需要在准备实际复杂数据的函数中复制相同的行为。 –

+0

@DávidPásztor谢谢。这就是诀窍! – dyah

回答

1

当大卫在评论中提到的,问题的功能只照顾模板的,你需要在准备实际复杂数据的函数中复制相同的行为。

添加以下代码,以使着色颜色坚持过去的选择阶段:

- (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]); 
}