uitableViewCell 内容行为异常
tableViewCell content acts strange
我需要一些帮助来了解可能导致我的 TableViewCell 内容出现问题的原因。在我的应用程序中,我使用了一个论坛。在论坛里我们用头像给了comments/persons。现在我想给所有名字为 "X" 的人一个相同的头像。为此,我正在尝试使用下面的代码,但它不能完美运行,我不明白为什么?有时代码会出现错误并给出例如别名 "Y" 的人 "X" 别名头像?
1.First 我做的事情是在故事板中连接标签:tableView -> tableViewCell 将 UIImageViews 标签设置为 20。
2。然后我 运行 下面的代码在其他情况下适用于别名,TableViewCells 内容中的注释。
static NSString *CellIdentifier = @"ForumthreadCell";
UITableViewCell *cell = [pTableView dequeueReusableCellWithIdentifier:CellIdentifier];
ForumPost *x [self.items objectAtIndex:indexPath.row];
UIImageView *pic = (UIImageView *) [cell viewWithTag: 20];
if ([x.alias isEqualsToString:@"X"]){
[pic setImage:[UIImage imagedNamed:@"some picture here.png"]];
}
如有任何帮助或建议,我们将不胜感激。此致
这是因为 UITableView 中的所有单元格都被重用了。这意味着您的第一个单元格将被重新用于加载,比方说,您的第六个单元格。如果您不重新加载那里的所有元素并且您在第一个单元格中有图像,则该图像将保留在第六个单元格中。您可以使用的另一个示例是设置 if indexPath.row == 1
将 ForumPost 的某些 属性 设置为特定值(初始化后 ForumPost *x
),您将有类似的行为。
要让细胞正常工作,您需要管理所有可能的情况。
例如,您有:
if ([x.alias isEqualsToString:@"X"]){
[pic setImage:[UIImage imagedNamed:@"some picture here.png"]];
}
但你也需要
else if ([x.alias isEqualsToString:@"Y"]){
[pic setImage:[UIImage imagedNamed:@"other pic.png"]];
}
并且,如果您有其他起始名称,例如 a、b、c 等:
else if ([x.alias isEqualsToString:@"Y"]){
[pic setImage:nil];
}
我需要一些帮助来了解可能导致我的 TableViewCell 内容出现问题的原因。在我的应用程序中,我使用了一个论坛。在论坛里我们用头像给了comments/persons。现在我想给所有名字为 "X" 的人一个相同的头像。为此,我正在尝试使用下面的代码,但它不能完美运行,我不明白为什么?有时代码会出现错误并给出例如别名 "Y" 的人 "X" 别名头像?
1.First 我做的事情是在故事板中连接标签:tableView -> tableViewCell 将 UIImageViews 标签设置为 20。
2。然后我 运行 下面的代码在其他情况下适用于别名,TableViewCells 内容中的注释。
static NSString *CellIdentifier = @"ForumthreadCell";
UITableViewCell *cell = [pTableView dequeueReusableCellWithIdentifier:CellIdentifier];
ForumPost *x [self.items objectAtIndex:indexPath.row];
UIImageView *pic = (UIImageView *) [cell viewWithTag: 20];
if ([x.alias isEqualsToString:@"X"]){
[pic setImage:[UIImage imagedNamed:@"some picture here.png"]];
}
如有任何帮助或建议,我们将不胜感激。此致
这是因为 UITableView 中的所有单元格都被重用了。这意味着您的第一个单元格将被重新用于加载,比方说,您的第六个单元格。如果您不重新加载那里的所有元素并且您在第一个单元格中有图像,则该图像将保留在第六个单元格中。您可以使用的另一个示例是设置 if indexPath.row == 1
将 ForumPost 的某些 属性 设置为特定值(初始化后 ForumPost *x
),您将有类似的行为。
要让细胞正常工作,您需要管理所有可能的情况。
例如,您有:
if ([x.alias isEqualsToString:@"X"]){
[pic setImage:[UIImage imagedNamed:@"some picture here.png"]];
}
但你也需要
else if ([x.alias isEqualsToString:@"Y"]){
[pic setImage:[UIImage imagedNamed:@"other pic.png"]];
}
并且,如果您有其他起始名称,例如 a、b、c 等:
else if ([x.alias isEqualsToString:@"Y"]){
[pic setImage:nil];
}