我试图将图像显示为Apple Watch脸上的复杂功能。我已经尝试了.jpg和.png文件。我相信用于使复杂功能正常工作的代码是正确的,但由于某种原因,图像会像白色一样出现白色:
我的代码如下:
var template: CLKComplicationTemplate? = nil
let temporaryTemplate = CLKComplicationTemplateModularSmallSimpleImage()
let theImage = UIImage(named: "testImage")!.imageWithRenderingMode(.AlwaysTemplate)
let imager = CLKImageProvider(onePieceImage: theImage)
temporaryTemplate.imageProvider = imager
template = temporaryTemplate
我知道图像被视为“仅限alpha”的并发症,但我认为这是由系统自动完成的。我在这里错过了一步吗?
答案 0 :(得分:4)
你是对的,你的代码一切正确,证据是白色方块,这意味着问题出现在图像中。
从12:10开始仔细观察the video。简而言之,您必须使用alpha通道创建单色png图像,系统当然无法为您完成。下面是示例,您可以将其替换为图像并查看结果:
另请附上您的图片以便查看。
答案 1 :(得分:1)
我已使用指南中提到的图像进行并发症。以下是我的代码。它适用于我,删除渲染模式部分并尝试。我附上了一张我使用的样本图片。
let template = CLKComplicationTemplateModularLargeStandardBody()
let image = UIImage(named: imageName[![enter image description here][1]][1])
template.headerImageProvider =
CLKImageProvider(onePieceImage: image!)
template.headerTextProvider = CLKSimpleTextProvider(text: headerText)
答案 2 :(得分:0)
我承认我不会观看WWDC视频或阅读Apple文档...... 我尝试的东西通常都有用。
因此,在看到这个错误并使用图像后,我有了一个想法,它已经淘汰了。即使我不支持前进或后退,我也必须返回时间线。
它解决了出现白盒图像而不是应用程序图标的问题。
- (void)getCurrentTimelineEntryForComplication:(CLKComplication *)complication
withHandler:(void(^)(CLKComplicationTimelineEntry * __nullable))handler {
[self getLocalizableSampleTemplateForComplication:complication
withHandler:^(CLKComplicationTemplate * _Nullable complicationTemplate) {
CLKComplicationTimelineEntry* entry = [CLKComplicationTimelineEntry entryWithDate:[NSDate date]
complicationTemplate:complicationTemplate];
handler(entry);
}];}