का कारण बनता है मेरे पास एक कस्टम UITableViewCell है जिसमें UIImageView और UILabel शामिल हैं। सेल 320x104px है और imageView पूरे क्षेत्र को लेबल के साथ ले जाता है। केवल 8 कोशिकाएं हैं।कस्टम UITableViewCell बड़े UIImageView के साथ स्क्रॉल अंतराल
ViewDidLoad में मैं सभी आवश्यक छवियों को सामने आया और उन्हें सही आयामों पर एक शब्दकोश में कैशिंग कर रहा हूं।
जब मैं UITableView स्क्रॉल करता हूं तो हर बार जब कोई नया सेल सामना होता है तो एक उल्लेखनीय अंतराल होता है। यह मेरे लिए कोई समझ नहीं आता है क्योंकि यह जिस छवि का उपयोग कर रहा है वह पहले से ही बनाया गया है और कैश किया गया है। मैं जो सेल से पूछ रहा हूं वह छवि को प्रस्तुत करने के लिए अपने UIImageView के लिए है।
मैं अपने दृश्य के साथ एक कस्टम सेल का उपयोग कर रहा एक xib में और के साथ उपयोग करने के लिए अपने UITableView को विन्यस्त:
[self.tableView registerNib: [UINib nibWithNibName: @ "ActsCell" बंडल: शून्य] forCellReuseIdentifier: myIdentifier];
सेल निर्माण और विन्यास:
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString* reuseIdentifier = @"ActsCell";
ActsCell* cell = [tableView dequeueReusableCellWithIdentifier:reuseIdentifier];
// Configure the cell...
[self configureCell:cell atIndexPath:indexPath];
return cell;
}
- (void)configureCell:(ActsCell *)cell atIndexPath:(NSIndexPath *)indexPath
{
Act* act = [self.acts objectAtIndex:indexPath.row];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
cell.title.text = act.name;
cell.imageView.image = [self.imageCache objectForKey:act.uid];
}
क्या अंतराल के कारण हो सकता है? एसिंक को कुछ भी करने की कोशिश करने में कोई फायदा नहीं होगा क्योंकि हर समय-गहन काम किया जाता है।
मैं दो चीजों के बारे में सोच सकता हूं। एक यह है कि डेक्यूइंग विफल रहता है क्योंकि आप 'reusableIdentifier' को ठीक से सेट नहीं करते हैं। दूसरा छवियों का आकार है। भले ही छवियों को लोड किया गया हो, सीजी को दिखाने से पहले छवि डेटा को संसाधित करने की आवश्यकता है, जिसमें स्केलिंग, कंपोजिटिंग इत्यादि जैसे महंगे संचालन शामिल हो सकते हैं। – Lvsti
@Lvsti क्या आप इस बात का विस्तार कर सकते हैं कि मैं reuseIdentifier को ठीक से कैसे सेट नहीं कर रहा हूं? – Undistraction
आप सही हैं, शायद यह मामला नहीं है, अन्यथा आपको किसी भी कोशिका को वापस लेने पर वापस नहीं मिलेगा ... – Lvsti