2013-04-04 2 views
10

तो मेरे पास UITableViewController है जो एक और tableVC लॉन्च करता है जो मूल रूप से खारिज होने पर मूल के लिए कक्षों की संख्या को बदलता है।UITableView स्क्रॉल सामग्री का आकार किसी अन्य दृश्य को खारिज करने के बाद गलत है

सही सेल ऊंचाई (और शीर्षलेख ऊंचाई) को लौटने के बावजूद बर्खास्तगी के साथ-साथ पंक्तियों की अद्यतन संख्या (जैसे स्क्रॉल सामग्री बहुत बड़ी है), स्क्रॉल दृश्य केवल स्क्रॉल होने पर बाउंस करता है। तालिका के स्क्रॉल की contentSize संपत्ति को देखने पर, contentSize गलत है और जैसा कि पहले था उतना ही है।

प्रारंभ में मूल tableVC लोड करते समय, मुझे समस्या नहीं है। यदि मेरे पास बड़ी संख्या में कोशिकाएं हैं, तो तालिका अपेक्षा के अनुसार स्क्रॉल होगी। यह केवल tableVC प्रस्तुत करने की बर्खास्तगी पर है कि मैं समस्या में भाग लेता हूं। एक बात जो मुझे अनिश्चित है, वह है कि रीलोडडाटा कहां कॉल करें। प्रस्तुत tableVC में

1.:: मैं इसे इस रूप में कर रहा हूँ

[[self presentingViewController] dismissViewControllerAnimated:YES completion:nil] 

मूल tableVC में 2.:

-(void)viewDidAppear  
{ 
    //tablecell number manipulated 
    [table reloadData]; 

} 

अजीब बात यह है कि अगर मैं परिदृश्य के लिए बारी बारी से और वापस चित्र पर, सामग्री आकार फिर सही ढंग से सेट किया गया है और मैं फिर से स्क्रॉल कर सकते हैं।

+0

बस इस पर आया, 'viewDidAppear' एक टाइपो है - क्या आपने कोड को सही तरीके से कॉपी नहीं किया है? – Rich

उत्तर

3

एक

[table setNeedsDisplay]; 

भी जोड़ें, वहाँ एक विशेष कारण है कि आप एनिमेट नहीं कर रहे हैं?

+0

काम नहीं लग रहा है। मैंने सोच की एक ही पंक्ति के साथ setNeedsLayout भी कोशिश की। –

+0

एनीमेशन वापस जोड़ने के बारे में कैसे? – Mundi

+0

यह वास्तव में मेरे असली कोड में एनिमेटेड है, मैंने अभी एक गलती की है। मुझे एनिमेटेड होने की ज़रूरत है। –

0

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

मेरे मामले में आईओएस 6 में reloadData में एक बग प्रतीत होता है जिसने टेबलव्यू को नए आकार की उचित गणना करने से रोक दिया (यह आईओएस 7 में ठीक काम करता है)। मैंने पंक्तियों और खंडों पर उपयुक्त आवेषण और हटाए जाने पर इसे हल किया, जैसा कि यहां विस्तृत किया गया है: UITableView won't reload contentSize

1

मैंने इसे खंड को पुनः लोड करके और reloadData का उपयोग न करके हल किया। [तालिका रीलोडक्शन: [NSIndexSet अनुक्रमणिकासेट WithIndex: 0] withRowAnimation: UITableViewRowAnimationAutomatic];

+0

धन्यवाद, यह एक उपयोगी उत्तर है। – DeyaEldeen

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