2017-09-25 10 views
1

복잡한 템플릿 이미지에 색조를 추가하려고합니다. 시계 모드를 맞춤 설정하는 옵션을 스크롤 할 때 색조 색상이 정확합니다. 그러나 합병증을 선택하고 일반 시계 모드로 돌아 오면 색상이 흰색으로 다시 바뀝니다.Apple 시계 합병증 색조 색

- (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 gone and it's back to a white image

+0

질문의 기능은 합병증을 선택할 때 표시되는 __template__을 담당한다. 실제 합병증 데이터를 준비하는 함수에서 동일한 동작을 복제해야합니다. –

+0

@ DávidPásztor 감사합니다. 그 트릭을 했어! – dyah

답변

1

다윗이 코멘트에서 언급 한 바와 같이이 질문의 기능 만 템플릿을 담당하고 당신이 필요 : 합병증 후 Tint is correct while customizing

을 선택 실제 합병증 데이터를 준비하는 함수에서 동일한 동작을 복제합니다.

은 색조의 색상이 선택 단계를지나 유지하기 위해 다음 코드를 추가

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