gpt4 book ai didi

ios - 滚动时 UITableView 内容重置

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:41:18 25 4
gpt4 key购买 nike

我根本不明白如何从那里解决这个问题。

这很简单,我将 UITextField 添加到我的 UITableViewCell 中。用户可以输入内容,然后在将其滚动出来并返回到 View 后,内容将重置回其默认状态。

这与使用 dequeueReusableCellWithIdentifier 重新使用旧单元有关,对吗?我只是不明白如何解决它!

这是我的代码:

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (!cell)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
//Stop repeating cell contents
else for (UIView *view in cell.contentView.subviews) [view removeFromSuperview];

//Add cell subviews here...

}

最佳答案

一旦初始化单元格内容,您就不必删除它们,它们永远不会重新创建,它们会被重复使用,因此您的代码应如下所示

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (!cell)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}


}

而且我假设您想对单元格进行一些控制,在这种情况下,您可以尝试使用 CustomCell,它会在初始化时创建所有 subview 。

通常,你所有的初始化都应该在

if (!cell)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
//ALL INITS
}

在它之外你应该更新你添加到单元格中的值..

关于ios - 滚动时 UITableView 内容重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18183485/

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