虽然我意识到这是开发人员中的一个热门问题,但Stack Overflow上有许多类似的问题,但没有人能够帮我解决这个问题。 UITableView存在一个奇怪的问题,即单个单元格混合在一起,或者看似混乱。我相信我正在重复使用细胞,只需要第二眼。这是我的代码:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *simpleTableIdentifier = @"SimpleTableCell";
SimpleTableCell *cell = (SimpleTableCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (cell == nil)
{
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"SimpleTableCell" owner:self options:nil];
cell = [nib objectAtIndex:0];
}
cell.friendFullName.text = [users objectAtIndex:indexPath.row];
return cell;
}
我在单独的UITableCell中使用动态自定义单元格。
答案 0 :(得分:5)
您正在重复使用此单元格。将您的标签设置为willDisplayCell
而不是cellForRowAtIndexPath
。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *simpleTableIdentifier = @"SimpleTableCell";
SimpleTableCell *cell = (SimpleTableCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (cell == nil)
{
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"SimpleTableCell" owner:self options:nil];
cell = [nib objectAtIndex:0];
}
return cell;
}
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
SimpleTableCell *simpleTableCell = (SimpleTableCell *)cell;
simpleTableCell.friendFullName.text = [users objectAtIndex:indexPath.row];
}