gpt4 book ai didi

iphone - IOS - cellForRowAtIndexPath 跳过行

转载 作者:可可西里 更新时间:2023-11-01 03:25:57 24 4
gpt4 key购买 nike

基本上,cellForRowAtIndexPath 函数需要返回一个 UITableViewCell。在我的代码中,我想检查一个行为,该行为将检查某些内容并在找到特定值时跳过单元格。

这是我现在拥有的:

static NSString *FirstCellIdentifier = @"First Custom Cell";
static NSString *SecondCellIdentifier = @"Second Custom Cell";

CustomObject *o = [_customObjects objectAtIndex:indexPath.row];

if ([s.name isEqualToString:@""])
{
FirstCellController *cell = [customList dequeueReusableCellWithIdentifier:FirstCellIdentifier];
if (!cell) {
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"FirstCustomCell" owner:self options:nil];
for (id currentObject in topLevelObjects){
if ([currentObject isKindOfClass:[UITableViewCell class]]){
cell = (FirstCellController *) currentObject;
break;
}
}
}
// Here I do something with the cell's content
return cell;
}
else {
SecondCellController *cell = [customList dequeueReusableCellWithIdentifier:SecondCellIdentifier];
if (!cell) {
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"SecondCustomCell" owner:self options:nil];
for (id currentObject in topLevelObjects){
if ([currentObject isKindOfClass:[UITableViewCell class]]){
cell = (SecondCellController *) currentObject;
break;
}
}
}
// Here i do something with the cell's content
return cell;
}

我想做的是,如果 s.name 不为空,我想“跳过”单元格,不显示它并转到下一个单元格。

有人对此有什么建议吗?

谢谢。

最佳答案

您不能以这种方式“跳过”单元格。如果您的数据源声称有 n 行,那么您必须为每一行提供一个单元格。正确的方法是修改您的数据源以在您想要删除行时声明 (n-1) 行,然后调用 UITableView reloadData 让它重新生成表(和要求您为每个可见行提供新单元格)。

另一种选择是“隐藏”行/单元格。我为此使用的技术是通过 heightForRowAtIndexPath 为给定的单元格提供 0 的高度:

关于iphone - IOS - cellForRowAtIndexPath 跳过行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12843681/

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