2015-09-25 7 views
6

मैं वर्तमान में अपने watchOS 2 ऐप के लिए जटिलताओं को स्थापित कर रहा हूं।watchOS जटिलता में छवि को प्रदर्शित करने के लिए कैसे करें

मैं जटिलताओं के तीन विभिन्न प्रकार की पेशकश करना चाहते हैं:

  • उपयोगितावादी छोटे
  • मॉड्यूलर smallist आइटम
  • परिपत्र छोटे

इन सभी जटिलता प्रकार बस के रूप में अपने एप्लिकेशन आइकन प्रदर्शित करना चाहिए एक छवि। मेरी 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) 

    } 

} 

मुझे यकीन है कि मेरा विचार को साकार करने की उचित तरीके से नहीं हूँ, इसलिए मैं सिर्फ अपनी जटिलता के रूप में एक छवि प्रदर्शित करने के लिए कोड में जानना चाहते हैं । क्या कोई जानता है कि मैं इसे कैसे प्राप्त कर सकता हूं?

उत्तर

10

सबसे पहले मैं दृढ़ता से आपको 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) 
    } 

} 

और भूल नहीं है $(PRODUCT_MODULE_NAME).ComplicationController के रूप में जटिलता विन्यास में अपने डेटा स्रोत कक्षा निर्दिष्ट और उचित चेक बॉक्स की जाँच करने के: शेष दो के क्रियान्वयन अपने संदर्भ में निम्नलिखित हो सकता है। enter image description here

यह आपके मामले में न्यूनतम जटिलता कॉन्फ़िगरेशन है।

+0

आपके विस्तृत उत्तर के लिए धन्यवाद - शायद मैंने यह स्पष्ट नहीं किया कि मैंने पहले ही इन तरीकों को लागू किया है, अन्यथा मैं ऐप नहीं बना सका। मुझे आपके द्वारा सुझाए गए डब्ल्यूडब्ल्यूडीसी सत्र वीडियो पर एक नज़र डालेंगे। – fredpi

+0

@ pi1000 - एक कॉन्फ़िगरेशन स्क्रीनशॉट के साथ उत्तर अपडेट किया गया। मुझे लगता है कि आपके द्वारा किए गए सेटिंग्स सहित आपके द्वारा किए गए सभी कार्यों की गणना करने की आवश्यकता है। –

+0

हाँ धन्यवाद, लेकिन अभी भी कुछ गलतफहमी। मैं एक गोलाकार सर्कल के रूप में जटिलता देखता हूं, लेकिन मैं नहीं चाहता कि यह ऐसा टेम्पलेट हो और मैं जानना चाहता हूं कि मैं छवि के रूप में अपने ऐप आइकन का उपयोग कर सकता हूं या नहीं। – fredpi

संबंधित मुद्दे