gpt4 book ai didi

swift - 如何在 watchOS 复杂功能中显示图像

转载 作者:搜寻专家 更新时间:2023-10-30 22:06:28 24 4
gpt4 key购买 nike

我目前正在为我的 watchOS 2 应用程序设置复杂功能。

我想提供三种不同类型的并发症:

  • 功利小
  • 模块化的小型项目
  • 圆形小

所有这些复杂类型都应该简单地将我的应用程序图标显示为图像。在我的 ClockKit 类中,我实现了以下方法:

func getCurrentTimelineEntryForComplication(complication: CLKComplication, withHandler handler: (CLKComplicationTimelineEntry?) -> Void) {

if complication.family == .CircularSmall {

let template = CLKComplicationTemplateCircularSmallRingImage()
template.imageProvider = CLKImageProvider(onePieceImage: UIImage(named: "app_icon")!)
let timelineEntry = CLKComplicationTimelineEntry(date: NSDate(), complicationTemplate: template)
handler(timelineEntry)

} else if complication.family == .UtilitarianSmall{

let template = CLKComplicationTemplateUtilitarianSmallRingImage()
template.imageProvider = CLKImageProvider(onePieceImage: UIImage(named: "app_icon")!)
let timelineEntry = CLKComplicationTimelineEntry(date: NSDate(), complicationTemplate: template)
handler(timelineEntry)

} else if complication.family == .ModularSmall {

let template = CLKComplicationTemplateModularSmallRingImage()
template.imageProvider = CLKImageProvider(onePieceImage: UIImage(named: "app_icon")!)
let timelineEntry = CLKComplicationTimelineEntry(date: NSDate(), complicationTemplate: template)
handler(timelineEntry)

} else {

handler(nil)

}

}

我不确定这是实现我的想法的合适方式,所以我想知道仅显示图像的代码作为我的复杂功能。有谁知道我怎样才能做到这一点?

最佳答案

首先我强烈推荐你看一个Apple's session关于并发症,除非你还没有看到它。

您至少需要在ComplicationController 中实现CLKComplicationDataSource 的以下3 个非可选方法:

public func getSupportedTimeTravelDirectionsForComplication(complication: CLKComplication, withHandler handler: (CLKComplicationTimeTravelDirections) -> Void)
public func getCurrentTimelineEntryForComplication(complication: CLKComplication, withHandler handler: (CLKComplicationTimelineEntry?) -> Void)
public func getPlaceholderTemplateForComplication(complication: CLKComplication, withHandler handler: (CLKComplicationTemplate?) -> Void)

所有其他方法都是可选的。据您所见,您只实现了第二个。在您的上下文中,其余两个的实现可能如下所示:

class ComplicationController: NSObject, CLKComplicationDataSource {

func getSupportedTimeTravelDirectionsForComplication(complication: CLKComplication, withHandler handler: (CLKComplicationTimeTravelDirections) -> Void) {
// Turn off time travelling
handler([CLKComplicationTimeTravelDirections.None])
}

func getPlaceholderTemplateForComplication(complication: CLKComplication, withHandler handler: (CLKComplicationTemplate?) -> Void) {
var template: CLKComplicationTemplate?

switch complication.family {
case .CircularSmall:
template = CLKComplicationTemplateCircularSmallRingImage()
template.imageProvider = CLKImageProvider(onePieceImage: UIImage(named: "app_icon")!)
case .UtilitarianSmall:
template = CLKComplicationTemplateUtilitarianSmallRingImage()
template.imageProvider = CLKImageProvider(onePieceImage: UIImage(named: "app_icon")!)
case .ModularSmall:
template = CLKComplicationTemplateModularSmallRingImage()
template.imageProvider = CLKImageProvider(onePieceImage: UIImage(named: "app_icon")!)
case .ModularLarge:
template = nil
case .UtilitarianLarge:
template = nil
}

handler(template)
}

}

并且不要忘记在 Complication Configuration 中将您的数据源类指定为 $(PRODUCT_MODULE_NAME).ComplicationController 并选中相应的复选框。 enter image description here

这是您的案例中最简单的复杂配置。

关于swift - 如何在 watchOS 复杂功能中显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32787467/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com