我们正在开发一个应用程序,我们必须使用Custom UItableViewcell来显示数据。在UItableViewCell中显示数据时,如果我们在UItableViewCell中有任何内容(以前UItableViewCell已经存在内容或与某些数据绑定),则需要删除并绑定新数据,否则数据需要绑定到tableview。以下是我们尝试过的代码。
if (cell.thumbnailImageView.image==nil) {
cell.thumbnailImageView.image = [imagearray objectAtIndex:indexPath.row];
// cell.pricelabel.text = [pricearray objectAtIndex:indexPath.row];
cell.DealDecLabel.text=[DealDecarray objectAtIndex:indexPath.row];
cell.pricelabel.text = [NSString stringWithFormat:@"%@",[pricearray objectAtIndex:indexPath.row]];
}
else
{
cell.thumbnailImageView.image=nil;
cell.DealDecLabel.text=nil;
cell.pricelabel.text=nil;
cell.thumbnailImageView.image = [imagearray objectAtIndex:indexPath.row];
// cell.pricelabel.text = [pricearray objectAtIndex:indexPath.row];
cell.DealDecLabel.text=[DealDecarray objectAtIndex:indexPath.row];
cell.pricelabel.text = [NSString stringWithFormat:@"%@",[pricearray objectAtIndex:indexPath.row]];
}
任何提供解决方案或代码的人都非常感激。
答案 0 :(得分:2)
此代码在cellForRowAtIndexPath
对吗?
如果它不是必须的,但假设它是
[self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath]
withRowAnimation:UITableViewRowAnimationNone];
将重新加载tableView
中的特定单元格 [self.tableView reloadData];
会重新加载整件事
你实际上不需要每次都把图像弄清楚......你可以简单地做..
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
MYCustomTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (!cell)
cell = [[MYCustomTableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
cell.thumbnailImageView.image = [imagearray objectAtIndex:indexPath.row];
cell.DealDecLabel.text=[DealDecarray objectAtIndex:indexPath.row];
cell.pricelabel.text = [NSString stringWithFormat:@"%@",[pricearray objectAtIndex:indexPath.row]];
return cell;
}
潜在地看一组字典而不是3个独立的数组..
并考虑cell.imageView
,cell.textLabel
和cell.detailTextLabel
在UITableViewCell
子类中提供,我可能会将其编辑为两个标签并将其删除因为它们是不必要的。 detailTextLabel需要将UITableViewCellStyleDefault
更改为UITableViewCellStyleSubtitle
答案 1 :(得分:1)
如果您从Web服务获取数据,请添加以下代码。
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
NSLog(@"Did Finished loading....");
// down here reload your tableview
[self.tableView reloadData];
}
答案 2 :(得分:0)
每当您将新数据添加到数组中时,即在DealDecarray
中,只需调用
[self.tableView reloadData];
它适用于你。
答案 3 :(得分:0)
使用新数据更改uitableview的数据源,然后重新加载表。
[table reloadData];