मैं आईफोन एसडीके 3.1.3 का उपयोग कर रहा हूं। मेरे पास UITableViewController
है जो किसी अन्य नियंत्रक से डेटा प्राप्त करता है। तालिका दृश्य मुख्यदृश्य के उप-दृश्य के रूप में जोड़ा गया है लेकिन फ्रेम सेट है ताकि यह दिखाई न दे। तालिका दृश्य फ्रेम को अद्यतन किया जाता है और बटन पर टैप करके मुख्य दृश्य पर स्लाइड करने के लिए बनाया जाता है।UITableView विशिष्ट स्थिति पर स्क्रॉलिंग
तालिका दृश्य प्रकट होता है और मैं अंतिम पंक्ति तक स्क्रॉल करता हूं। अगर मैं अंतिम पंक्ति का चयन करता हूं, तो मैं अधिक डेटा के साथ तालिका को पुनः लोड करता हूं। तालिका अधिक डेटा के साथ अद्यतन हो जाता है। स्क्रॉल स्थिति हमेशा शीर्ष पर छोड़कर सब कुछ ठीक काम करता है।
मुझे स्क्रॉल स्थिति की आखिरी पंक्ति होने की आवश्यकता है जिसे मैंने अधिक डेटा लोड करने के लिए क्लिक किया था। मैं स्क्रॉल स्थिति को सहेजता हूं और अधिक डेटा लोड करने के बाद निम्न कोड को कॉल करता हूं। यह बिना किसी समस्या के निष्पादित करता है लेकिन स्क्रॉल स्थिति हमेशा शीर्ष पर होती है।
[theTableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:savedScrollPosition inSection:0] atScrollPosition:savedScrollPosition animated:NO];
उपरोक्त का कोई प्रभाव नहीं पड़ता है। ViewWillAppear:
ViewDidAppear:
आग नहीं है और मुझे बताया गया है कि अगर दृश्य नियंत्रक कोड में तत्काल है, तो यह मामला है, ये आग नहीं है। तालिका को फिर से लोड करने के बाद स्क्रॉल स्थिति को कैसे और कब सेट करना है, यह जानने में मेरी सहायता करें ([theTableView reloadData]
) ताकि यह उस पंक्ति पर है जिस पर मैंने क्लिक किया था।
कोड तालिका दृश्य को फिर से लोड करने के लिए & स्क्रॉल
////performAction will notify the tableviewcontroller which will result in didPerformAction being called
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.row == lastRow)
{
savedScrollPosition = lastRow;
//perform the action
[controller performAction];
}
}
- (void) didPerformAction:(NSNotification *)obj
{
[theTableView reloadData];
[theTableView
scrollToRowAtIndexPath: [NSIndexPath indexPathForRow:savedScrollPosition inSection:0]
atScrollPosition:UITableViewScrollPositionBottom
animated:NO];
}
बचाया गया है इस कथन में स्क्रॉलपॉजिशन –