UITextField 值在滚动时消失并重新出现在其他 UITableViewCells [重复]
Posted
技术标签:
【中文标题】UITextField 值在滚动时消失并重新出现在其他 UITableViewCells [重复]【英文标题】:UITextField value disappearing and reappearing in other UITableViewCells upon scrolling [duplicate] 【发布时间】:2017-07-07 00:49:16 【问题描述】:- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
static NSString *CellIdentifier = @"inventoryItem";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
cell.textLabel.font = [UIFont systemFontOfSize:15];
UILabel *name = (UILabel *)[cell viewWithTag:1];
name.text = [NSString stringWithFormat:@"%@",inventoryItems[indexPath.row][@"Inventory_Name"]];
NSLog(@"%@", name.text);
cell.selectionStyle = UITableViewCellSelectionStyleNone;
return cell;
我是 Objective-C 的初学者。我有一个自定义的UITableViewCell
,有一个名字和一个UITextField
。 UITextField
标签为 4。每次滚动时,UITextField
s 中的值都会消失并出现在不同的单元格中。我知道,这是因为 dequeueReusableCellWithIdentifier
可以重复使用单元格。我进行了一些研究,发现将UITextField
s 存储在一个数组中并将它们重新加载到cellForRowAtIndexPath
可能是最好的方法,但我无法实现它。一个例子是理想的,或者是解决这个问题的简单方法。谢谢
【问题讨论】:
【参考方案1】:每次调用 cellForRowAtIndexPath:
方法时,您都在设置 name
UILabel。
我想知道/认为来自 inventoryItems[indexPath.row][@"Inventory_Name"]
的值不是您所期望的?
而不是做:
NSLog(@"%@", name.text);
尝试做:
NSLog(@"%@ SHOULD EQUAL %@", inventoryItems[indexPath.row][@"Inventory_Name"], name.text);
然后看看它们是否总是匹配?我怀疑你有一些“<null>
”值隐藏在里面。
【讨论】:
仅供参考 - 这是一个重新发布的问题。我刚把它关了。您可能想在骗子上发布您的答案。以上是关于UITextField 值在滚动时消失并重新出现在其他 UITableViewCells [重复]的主要内容,如果未能解决你的问题,请参考以下文章
iPad Safari 滚动会导致 HTML 元素消失并延迟重新出现
在自定义单元格(xib)中滚动时,UITextField 中的文本消失
UITextField 的 InputAccessoryView 在旋转时消失
为啥某些 Flask 会话值在关闭浏览器窗口后会从会话中消失,但稍后会在没有我添加它们的情况下重新出现?