私の合併症とタイムトラベルは、私が持っていたときに完全に機能しました.ModularLarge
.
オプションとして追加したかった.ModularSmall
ので、コードをいくつかの異なる方法で変更しようとしましたが、期待どおりに機能しなくなりました。
現在何が起こっているかというと、Time Travel は から生成された配列の最初のエントリに対して機能しgetTimelineEntriesForComplication
ますが、Time Travel を実行すると次のエントリが表示されないため、合併症は最初のエントリにとどまります。
ステートメントを使用してみたif
タイムライン:
func getTimelineEntriesForComplication(complication: CLKComplication, afterDate date: NSDate, limit: Int, withHandler handler: (([CLKComplicationTimelineEntry]?) -> Void)) {
guard let headers = headerArray, texts = body1Array, dates = body2Array else { return }
var entries = [CLKComplicationTimelineEntry]()
for (index, header) in headers.enumerate() {
let text = texts[index]
let date1 = dates[index]
let headerTextProvider = CLKSimpleTextProvider(text: header as! String)
let body1TextProvider = CLKSimpleTextProvider(text: text as! String)
let timeTextProvider = CLKTimeTextProvider(date: date1 as! NSDate)
let template = CLKComplicationTemplateModularLargeStandardBody()
let template2 = CLKComplicationTemplateModularSmallStackText()
template.headerTextProvider = headerTextProvider
template.body1TextProvider = body1TextProvider
template2.line1TextProvider = headerTextProvider
template2.line2TextProvider = body1TextProvider
template.body2TextProvider = timeTextProvider
if complication.family == .ModularLarge {
let timelineEntry = CLKComplicationTimelineEntry(date: date1 as! NSDate, complicationTemplate: template)
entries.append(timelineEntry)
handler(entries)
}
if complication.family == .ModularSmall {
let timelineEntry = CLKComplicationTimelineEntry(date: date1 as! NSDate, complicationTemplate: template2)
entries.append(timelineEntry)
handler(entries)
}
else {
handler(nil)
}
}
}