WatchKit 2 复杂文本仅在预览中显示
WatchKit 2 Complication Text Only Shows Up in Preview
我正在尝试为 watchkit2 开发一个非常简单的并发症,它说 "Hi" 来自一个简单的文本提供程序。
我已经设法实现了一些奇怪的行为;单击复杂功能或从自定义表盘屏幕预览它时,我可以看到文本,但在显示表盘时看不到。看看:
知道是什么原因造成的吗?
我的文本提供程序看起来像这样
var textProvider: CLKSimpleTextProvider
override init() {
textProvider = CLKSimpleTextProvider()
textProvider.text = "Hi"
textProvider.shortText = "HI"
textProvider.tintColor = UIColor.whiteColor()
super.init()
}
我得到的 getPlaceholderTemplateForComplication
看起来像
func getPlaceholderTemplateForComplication(complication: CLKComplication, withHandler handler: (CLKComplicationTemplate?) -> Void) {
// This method will be called once per supported complication, and the results will be cached
switch complication.family {
case .ModularSmall:
let stemplate = CLKComplicationTemplateModularSmallSimpleText()
stemplate.tintColor = UIColor.whiteColor()
stemplate.textProvider = textProvider
handler(stemplate)
case .CircularSmall:
let stemplate = CLKComplicationTemplateCircularSmallSimpleText()
stemplate.tintColor = UIColor.whiteColor()
stemplate.textProvider = textProvider
handler(stemplate)
default:
handler(nil)
}
}
在自定义表盘时,Apple Watches 会调用 getPlaceholderTemplateForComplication:withHandler:
来显示占位符文本。由于您已实施它 - 您可以看到 "Hi"。太棒了。
但是当表盘显示时,它会调用另一个方法,例如:
getCurrentTimelineEntryForComplication:withHandler:
getTimelineEntriesForComplication:beforeDate:limit:withHandler:
getTimelineEntriesForComplication:afterDate:limit:withHandler:
而且您似乎没有实施它们。因此,实施这些方法将解决您的问题。
您可以在此 WWDC 2015 教程中找到有关这些方法的更多详细信息:https://developer.apple.com/videos/wwdc/2015/?id=209
我正在尝试为 watchkit2 开发一个非常简单的并发症,它说 "Hi" 来自一个简单的文本提供程序。
我已经设法实现了一些奇怪的行为;单击复杂功能或从自定义表盘屏幕预览它时,我可以看到文本,但在显示表盘时看不到。看看:
知道是什么原因造成的吗?
我的文本提供程序看起来像这样
var textProvider: CLKSimpleTextProvider
override init() {
textProvider = CLKSimpleTextProvider()
textProvider.text = "Hi"
textProvider.shortText = "HI"
textProvider.tintColor = UIColor.whiteColor()
super.init()
}
我得到的 getPlaceholderTemplateForComplication
看起来像
func getPlaceholderTemplateForComplication(complication: CLKComplication, withHandler handler: (CLKComplicationTemplate?) -> Void) {
// This method will be called once per supported complication, and the results will be cached
switch complication.family {
case .ModularSmall:
let stemplate = CLKComplicationTemplateModularSmallSimpleText()
stemplate.tintColor = UIColor.whiteColor()
stemplate.textProvider = textProvider
handler(stemplate)
case .CircularSmall:
let stemplate = CLKComplicationTemplateCircularSmallSimpleText()
stemplate.tintColor = UIColor.whiteColor()
stemplate.textProvider = textProvider
handler(stemplate)
default:
handler(nil)
}
}
在自定义表盘时,Apple Watches 会调用 getPlaceholderTemplateForComplication:withHandler:
来显示占位符文本。由于您已实施它 - 您可以看到 "Hi"。太棒了。
但是当表盘显示时,它会调用另一个方法,例如:
getCurrentTimelineEntryForComplication:withHandler:
getTimelineEntriesForComplication:beforeDate:limit:withHandler:
getTimelineEntriesForComplication:afterDate:limit:withHandler:
而且您似乎没有实施它们。因此,实施这些方法将解决您的问题。 您可以在此 WWDC 2015 教程中找到有关这些方法的更多详细信息:https://developer.apple.com/videos/wwdc/2015/?id=209