ios - Updating UITableViewCell subview's frame has no effect -


मेरे पास एक कस्टम (उपवर्ग) UITableViewCell है जिसमें कुछ यूआईलाबेल, एक UIButton, और एक NSBlock गुण के रूप में है इस उपवर्ग को ExploreCell कहा जाता है दो संपत्तियों में यूआईएलएबल्स हैं और उन्हें क्रमशः waitLabel और lastUpdateLabel नाम दिया गया है।

जब अंतिम अपवाद लेबल की सामग्री शून्य है या रिक्त है तो @ "" , मुझे waitLabel को स्थानांतरित करने की आवश्यकता है I खड़ी नीचे (वाई अक्ष पर) 10 पिक्सल मैं इसे -tableView: cellForRowAtIndexPath: विधि में डाल दिया है जो निम्न कोड में दिखाया गया है के रूप में NSDictionary में कुछ वस्तुओं की जाँच करके यह कर रहा हूं।

  सीजीआरटीएफ़ फ्रेम = सेल। वाइटलाबेल.फ्रेम; यदि ([[सभी स्थल की जगह] ओब्जेक्ट: @ "प्रतीक्षा_टाइम" और amp; amp; और; ([[स्थल ऑब्जेक्ट फोरेकी: @ "प्रतीक्षा_टाइम"] गणना]] gt;) {frame.origin.y = 43; } अन्य {frame.origin.y = 53; } [Cell.waitLabel setFrame: फ्रेम];   

हालांकि, यह कोड मज़बूत काम करता है, और -setNeedsLayout पर कॉल करने की कोशिश कर रहा है, फिर भी यह काम नहीं करता है। मंथली रूप से, मेरा मतलब है कि कई बार स्क्रॉल करने के बाद, एक या दो कोशिकाएं जो सेल के मूल को 10 पिक्सल नीचे ले जाने के लिए मापदंड से मेल खाती हैं, वास्तव में उनके प्रतीक्षा लेबल का फ्रेम बदल दिया गया है।

कृपया मुझे बता सकते हैं कि ऐसा क्यों हो रहा है, और यह कैसे तय किया जा सकता है।

यह ऑटो लेआउट के साथ एक समस्या की तरह दिखता है अगर आपने इसे स्पष्ट रूप से बंद नहीं किया है, तो यह पर है आपको सेल के शीर्ष (या निचले) में एक बाधा के लिए एक आउटलेट बनाना चाहिए और फ़्रेम सेट करने के बजाय कोड में उस बाधा को निरंतर बदलना चाहिए। WWDC 2012 के वीडियो के अनुसार, आपको कोई भी सेटफ़्रेम नहीं होना चाहिए: यदि आप स्वत: लेआउट का उपयोग कर रहे हैं तो आपके कोड में संदेश।

Comments

Popular posts from this blog

excel vba - How to delete Solver(SOLVER.XLAM) code -

github - Teamcity & Git - PR merge builds - anyway to get HEAD commit hash? -

ios - Replace text in UITextView run slowly -