如果我们从 Internet 上获取一张小图像(例如 60 x 60),则在方法内部:
-(UITableViewCell *) tableView:(UITableView *) tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath { ... }
如果有固定的 25 行,而长度可以是可变的(例如,100,或者可以是 1000),该怎么办?如果我们使用dequeueReusableCellWithIdentifier
“重用”一个单元格,我们可能需要删除该单元格中的子视图(其中一个是 60 x 60 图像),因此当用户上下滚动列表时,单元格会被重用,并且图像是从网上重新获取的,并且在滚动时可以在这里和那里暂停。
但是,如果我删除dequeueReusableCellWithIdentifier
并始终分配一个新单元格:
cell = [[UITableViewCell alloc]
initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:TableViewCellIdentifier];
然后当我再次向下和向上滚动时,NSLog
显示图像仍在获取中。如果我们不想单独使用数组来存储获取的图像,有没有办法防止这种情况发生?
(现在,最初的行为是获取大约 7 张图像,如果表格向下滚动 3 行,则获取 3 张图像,如果表格向上滚动 3 行,则再次获取 3 张图像)