gpt4 book ai didi

ios - 表格单元格中的文本正在混合

转载 作者:行者123 更新时间:2023-11-28 21:03:50 24 4
gpt4 key购买 nike

我有表格 View 。当我滚动我的表格 View 时,表格单元格中的文本标签正在混合。如何解决?

我的代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

static NSString *cellIdentifier = @"Cell3";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];

if (cell == nil) {
cell= [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentifier];

}

UILabel *label = (UILabel *)[self.view viewWithTag:1];

if (indexPath.section == 0) {
switch (indexPath.row) {
case 0:
label.text = [_array objectAtIndex:indexPath.row];
break;
case 1:
label.text = [_array objectAtIndex:indexPath.row];
break;
case 2:
label.text = [_array objectAtIndex:indexPath.row];
break;


}}

最佳答案

您没有在单元格上设置文本标签,因为 self.view 有许多带有标签 1 的 View 。( View 中的任何单元格都有这样的 View )。
要将文本设置到单元格中,您应该使用单元格的 subview 之一( textLabeldetailTextLabel 或一些自定义标签),例如:

<...>
cell.textLabel.text = "Hello";
<...>

我想,我们需要为您添加一些解释。
方法-(UIView*)viewWithTag:在 subview 树中找到(在父 View 上的所有 View 中)。 tag只是一个数字,没有别的, subview 树中的多个 View 可以具有相同的标签。当 tableView 找不到要重用的单元格时(dequeueReusableCellWithIdentifier:返回 nil),您会创建不在表格上的新单元格(单元格的父 View 为 nil),因此第一次您找不到标签标签 1. 在第二次和其他时候,您会在 tableView 上获得标签之一(不是单元格的 subview ,而是其他单元格的 subview )。

关于好的阶梯和标签
有时标签是使我们的生活变得轻松的非常有用的机制,例如,如果您有动态的按钮数组,则为它们设置相同的选择器和目标以及与数组中的索引相同的标签并确定哪个按钮被选择是非常有用的标记属性。但是标签对于查找 subview 不是很有用,因为你应该知道一些奇怪的数字,并且应该将返回的 UIView* 的类型转换为所需的类型。我不认为这是好的。第二个原因,你有两个不同的地方你应该设置相同的值。第三个原因在于数据冲突领域,你可以为不同的 View 设置相同的标签,之后你会得到错误的结果,并且很难找到错误。

关于ios - 表格单元格中的文本正在混合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46863543/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com