繁体   English   中英

uicollectionviewcell内的uitableview滚动问题

[英]Scrolling issue with a uitableview inside a uicollectionviewcell

我在uicollectionviewcell中有一个uitableview,但是当uicollectionview中有两个以上项目时,contentoffset出现问题。 如果滚动第一项的表视图,然后滑动到第三项,则第三项的表视图的内容偏移量与第一项的表相同。 不同的数据,只是相同的contentoffset。 这发生在偶数和奇数编号的项目上。 任何帮助将不胜感激。

如果不查看代码,您可能会在表中看到相同的内容偏移量,因为您正在查看的是相同的表,这些表已被重用,因为包含它们的单元格已被重用。

如果您希望表视图保持其当前内容偏移量,那么收集视图数据源将需要记住每个索引路径中表的内容偏移量,并在配置每个单元格时更新这些偏移量。

例如,以几乎是代码的方式,如果模型是一个数组,则创建一个内容偏移量数组:

@property ... NSMutableArray *tableOffsets;

使用[NSValue valueWithCGPoint:CGPointZero]初始化模型中的每个元素。 确保包含集合视图的VC是所包含表视图的委托。 当表格视图滚动时,找出包含它的单元格并记下内容偏移量。

- (void)scrollViewDidScroll:(UITableView *)tableView {
    CGPoint co = tableView.contentOffset;
    self.tableOffsets[indexPath.row] = [NSValue valueWithCGPoint:co];

要获取该索引路径, 请在此处查看已接受的答案 然后在cellForItemAtIndexPath中,还原包含的表视图的偏移量(重用时可能已更改)...

UITableView *containedTableView = // however you get this
containedTableView.contentOffset = [self.tableOffsets[indexPath.row] CGPointValue];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM