1

シンプルなテキストプロバイダーから「こんにちは」と言う2用の非常にシンプルな複雑さを開発しようとしています。

私はいくつかの奇妙な動作を達成することができました。コンプリケーションをクリックしたとき、またはウォッチフェイスのカスタマイズ画面からプレビューしているときはテキストが表示されますが、ウォッチフェイスが表示されているときは表示されません。見てください:

ウォッチフェイスの動作がおかしい gif

これを引き起こしている可能性のあるアイデアはありますか?

私のテキストプロバイダーは次のようになります

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)
    }

}
4

1 に答える 1

3

ウォッチフェイスをカスタマイズしているときに、Apple Watch が呼び出しgetPlaceholderTemplateForComplication:withHandler:てプレースホルダー テキストを表示します。実装したので、「こんにちは」と表示されます。それはクールだ。ただし、ウォッチフェイスが表示されると、次のような別のメソッドが呼び出されます。

  • getCurrentTimelineEntryForComplication:withHandler:
  • getTimelineEntriesForComplication:beforeDate:limit:withHandler:
  • getTimelineEntriesForComplication:afterDate:limit:withHandler:

そして、あなたはそれらを実装していないようです。したがって、これらの方法を実装すると問題が解決します。これらの方法の詳細については、WWDC 2015 チュートリアル ( https://developer.apple.com/videos/wwdc/2015/?id=209)を参照してください。

于 2015-09-24T23:43:24.090 に答える