![](/img/trans.png)
[英]Working with UITableView inside UICollectionViewCell(Mimic Google Places Bottom Scrolling List)
[英]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.