在UITableView中滚动时,CustomCell图像会发生变化
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在UITableView中滚动时,CustomCell图像会发生变化相关的知识,希望对你有一定的参考价值。
问题:滚动表时再次调用API。 我所做的代码:
- (UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath {
ITableViewCell* cell = ( ITableViewCell* )[self.tblNotes dequeueReusableCellWithIdentifier:@"NoteTableCell"];
cell.tag = indexPath.row;
if(cell.tag == indexPath.row) {
cell = [cell initWithNote:[notesArray objectAtIndex:indexPath.row]];
}
[cell setNeedsLayout];
[cell setNeedsDisplay];
return cell;
}
我不想在滚动时调用initWithNote
。
提前致谢。
答案
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
ITableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:@"NoteTableCell"];
if (cell == nil) {
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"NoteTableCell" owner:self options:nil];
cell = [topLevelObjects objectAtIndex:0];
}
id object = [notesArray objectAtIndex:indexPath.row];
if ([object isKindOfClass:[NSDictionary class]]) {
NSDictionary *dict = (NSDictionary *)object;
[cell.userNameforNotes setText:[NSString stringWithFormat:@"%@",[[dict valueForKey:@"uploadedBy"] uppercaseString]]];
[cell.noteDescription setText:[NSString stringWithFormat:@"%@",[[dict valueForKey:@"description"] uppercaseString]]];
[cell.dateForNotes setText:[NSString stringWithFormat:@"%@",[[dict valueForKey:@"uploadedDate"] uppercaseString]]];
NSString *urlString = [NSString stringWithFormat:@"%@", [dict valueForKey:@"incidentID"]];
[cell.noteImage sd_setImageWithURL:[NSURL URLWithString:urlString]];
}
return cell;
}
另一答案
为此,您可以检测tableview是否在此委托scrollViewWillBeginDragging
的帮助下滚动,如果是,那么您可以保留一些标志或某些东西可以告诉您的代码不要调用initWithNote:
。滚动完成后你可以用scrollViewDidEndDragging:
检查它,你可以做任何你想做的事情。由于tableview包含scrollview,因此您可以轻松地从scrollview委托中获取帮助。
以上是关于在UITableView中滚动时,CustomCell图像会发生变化的主要内容,如果未能解决你的问题,请参考以下文章