2015-12-30 14 views
23

मैं एक आज विजेट है कि दो बातें शामिल है:आज विजेट tableView जमा

  1. एक UILabel
  2. एक UITableView

मेरी viewWillAppear मैं दिखाई दे सकता है लेबल सेट और मेरे tableView के लिए छुपाएं और मैंने लेबल टेक्स्ट को "लोडिंग" पर सेट किया है। नीचे छवि देखें।

तो मैं एक स्थान मिलता है और जब ऐसा होता है, मैं किसी अन्य विधि और

  1. फोन मैं मैं सिर्फ लेबल पाठ करने के लिए "डेटा नहीं मिला अद्यतन किसी भी डेटा प्राप्त नहीं करते हैं "
  2. अन्यथा मैं छिपाना चाहता है लेबल सेट और tableView दिखाई दे सकता है और मैं डेटा

को अपडेट करें जब यह सफलतापूर्वक किया जाता है मैं हा एक टेबल देखें जो इस तरह दिखता है:

अब मेरी समस्या के लिए।
जब मैं अपने आज विजेट खोलने के लिए और viewWillAppear मारा, मैं हमेशा अपने लेबल सेट के लिए प्रबंधन नहीं है और केवल परिणाम मैं इस

है।

तो क्या होता है कि मैं केवल तालिका दृश्य में अपने पिछले परिणाम का थोड़ा सा दिखा सकता हूं।

यह कभी-कभी होता है और ऐसा लगता है कि तालिका दृश्य मुक्त हो जाता है और मैं तालिका दृश्य को छुपाने और लेबल को दिखाने के लिए प्रारंभिक दृश्य को अपडेट करने में सक्षम नहीं हूं। यहां तक ​​कि जब स्क्रीन इस तरह फ्रीज हो जाती है तब भी यह सब कुछ चल रहा है और मैं तालिका दृश्य और दृश्य को अपडेट करने का प्रबंधन करता हूं।

कभी कभी के बजाय मेरी लेबल दिखा:

केवल मुद्दा जब मैं विजेट है कि स्क्रीन इस तरह जमा खोलने है। जैसा कि आकार में है, इसका कारण यह है कि मैंने preferredContentSize = CGSizeMake(0, 30) सेट किया है। अन्यथा मैं शर्त लगाता हूं कि यह पूरी पिछली तालिका दृश्य दिखाएगा।

viewWillAppear पर क्लिक करते समय दृश्य को हमेशा अद्यतन करने के लिए, इसे हल करने के तरीके के बारे में कोई भी विचार?

अद्यतन
एक और इनाम शुरू अगर वहाँ इस मुद्दे पर कुछ अन्य इनपुट है देखने के लिए।

+0

क्या आप कुछ कोड जोड़ सकते हैं, उदाहरण के लिए क्या आप नेटवर्क अनुरोध करते हैं और फिर परिणाम का विश्लेषण करते हैं? यदि हां, तो क्या आप 'पुनः लोड() 'टेबल व्यू करते हैं? और लेबल छुपाएं। यदि आप कुछ कार्यान्वयन जोड़ते हैं तो शायद मैं आपकी मदद कर सकता हूं – DeVladinci

+0

कृपया हमें कोड दिखाएं, अन्यथा मदद करना संभव नहीं है! – jbg

+0

क्या आप 'NCWidgetProviding' प्रोटोकॉल के अनुरूप हैं और 'widgetMarginInsetsForProposedMarginInsets:' पहले से ही लागू कर रहे हैं? – Ftoledo

उत्तर

10

सिस्टम क्या करता है यह एक स्नैपशॉट लेता है। मैं इस मुद्दे के साथ थोड़ा सा संघर्ष कर रहा हूं और मैंने this पोस्ट की जांच की है लेकिन इसने मेरी समस्या का समाधान नहीं किया है।विजेट

  • NCUpdateResultFailed को अद्यतन करने की आवश्यकता नहीं है - - नई सामग्री देखने
  • NCUpdateResultNoData पुनः बनाने का आप की आवश्यकता -

    widgetPerformUpdateWithCompletionHandler के लिए तीन विकल्प

    1. NCUpdateResultNewData हैं कोई त्रुटि के दौरान हुई अद्यतन प्रक्रिया

    इससे कोई फ़र्क नहीं पड़ता कि इनमें से कौन सा इसे हमेशा कहा जाता है एक ही परिणाम। और सिस्टम स्नैपशॉट लेता है।

    अपने विजेट तारीख तक देखने में मदद करने के लिए, प्रणाली कभी कभी अपने विजेट के देखने के स्नैपशॉट कैप्चर करता है। जब विजेट फिर से दिखाई देता है, तब तक सबसे हालिया स्नैपशॉट प्रदर्शित होता है जब तक कि सिस्टम दृश्य के लाइव संस्करण के साथ को प्रतिस्थापित नहीं करता है।

    स्नैपशॉट लेने से पहले विजेट के राज्य को अपडेट करने के लिए, सुनिश्चित करें कि NCWidgetProviding प्रोटोकॉल के अनुरूप है। अपने विजेट प्राप्त करता है widgetPerformUpdateWithCompletionHandler:, फोन सबसे हाल ही में सामग्री के साथ अपने विजेट के दृश्य को अपडेट और पूरा हैंडलर फोन, परिणाम अद्यतन

    Reference की वर्णन करने के लिए निम्न स्थिरांक से एक का उपयोग।

    मुझे लगता है कि हम शायद "भारी" डेटा को लोड करने की कोशिश कर रहे हैं और इसके कारण ऐसा हो सकता है। यह मेरा जवाब है, लेकिन मैंने यह जांचने के लिए एक बाउंटी शुरू की कि किसी और के पास कोई दूसरा जवाब है या आप मेरी पोस्ट से सहमत हैं।

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