gpt4 book ai didi

iphone - 最初可见的单元格在调用 reloadSections :withRowAnimation: method 后变得不可见

转载 作者:行者123 更新时间:2023-12-03 18:27:49 27 4
gpt4 key购买 nike

我想显示一个具有多个部分的表格,并且最初只显示 3 个部分元素。当用户点击节页脚时,节页脚会丢失(变为零),并且该节的所有元素将显示给用户。

因此,当用户点击部分页脚时,我调用以下代码:

-(void)loadMoreRowsInSection:(NSInteger)section {
[groupStates replaceObjectAtIndex:section withObject:[NSNumber numberWithBool:YES]];
[self.tableView reloadSections:[NSIndexSet indexSetWithIndex:section] withRowAnimation:NO];
}

我有以下代码来显示或不显示节页脚:

-(UIView*)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {
int count = [[(NSDictionary*)[filters objectAtIndex:section] valueForKeyPath:@"values.value"] count];
if (count>3&&![[groupStates objectAtIndex:section] boolValue]) {
LoadMoreFooter* loadMoreFooter = [[LoadMoreFooter alloc] initWithParent:self Section:section];
return [loadMoreFooter view];
}
else return nil;
}

当用户点击该部分页脚并调用 loadMoreRowsInSection 函数时,该部分将重新加载,但该部分的当前行会消失。当我向上滚动,使行移出屏幕并再次进入时,行再次出现。

如果我调用reloadData而不是reloadSections:withRowAnimation:,没有问题,但重新加载所有表格似乎不是一个好主意。另外,reloadTable 中没有动画。

有人遇到过这个问题吗?

最佳答案

从您自己保留对它的引用的意义上来说,这是一个“静态”单元格吗?那么,问题可能是这样的:

当您进行动画重新加载时,表格 View 将淡出现有单元格,同时淡入新单元格。问题是,当"new"单元格与旧单元格完全相同时,同一单元格将同时淡入和淡出!在您的情况下,淡出动画优先并且单元格被隐藏。

以下是一些可能的解决方案:

  1. 使用可重用的“包装单元”子类代替静态单元 - 其唯一目的是包含包装 View 的单元。然后,保留对 View 的静态引用,并将它们添加到 cellForRowAtIndexPath:

  2. 中的出队包装单元中
  3. 避免重新加载静态单元格的索引路径 - 而是执行 [UIViewtransitionWithView:self.myStaticCellduration:0.3 options:UIViewAnimationOptionTransitionCrossDissolveanimations:nil finish:nil]

关于iphone - 最初可见的单元格在调用 reloadSections :withRowAnimation: method 后变得不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3132135/

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