我有UITableView
扩展每个单元格的高度,并在选择单元格时显示UICollectionView
。它完成上述所有操作时没有错误,但是,当我选择一个tableCell后,它们都被展开。
当UICollectionView
用Cell填充并且每个都有不同数量的项目时(所以James有3个见解而Tim有4个),当我用较少的项目扩展TableViewCell然后尝试滚动Tim的{{ 1}},它超出界限。这是因为当我发起新的收藏视图时,他们都会看到最近创建的UICollectionView
的{{1}}。我希望创建的视图能够维护最初创建时的numberOfItemsInSection:
,而不是所有UICollectionView
采用最新的numberOfItemsInSection:
。我希望这是有道理的,但我会粘贴我的代码以更好地了解我的意思,下面是来自UITableViewController的代码:
UICollectionView
numberOfItemsInSection:
是包含- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
leaderboardCell *leaderCell = (leaderboardCell *) [self.tableView cellForRowAtIndexPath:indexPath];
isSelected = ![self cellIsSelected:indexPath];
if ([self cellIsSelected:indexPath]) {
[leaderCell.collectionView removeFromSuperview];
leaderCell.collectionView = nil;
[[NSNotificationCenter defaultCenter] removeObserver:self name:@"PostCellInformation" object:nil];
} else {
if (isSelected) {
leaderCell.collectionView = [[UICollectionView alloc] initWithFrame:CGRectMake(320, 65, 322, 200) collectionViewLayout:leaderCell.flowLayout];
[leaderCell.collectionView registerClass:[userCell class] forCellWithReuseIdentifier:@"userCellID"];
leaderCell.flowLayout = [[UICollectionViewFlowLayout alloc] init];
[leaderCell.flowLayout setScrollDirection:UICollectionViewScrollDirectionHorizontal];
UIColor *collectionViewColour = [UIColor colorWithRed:0.17 green:0.28 blue:0.40 alpha:1.0];
UIColor *borderColour = [UIColor colorWithRed:0.37 green:0.48 blue:0.60 alpha:1.0];
[leaderCell.collectionView setBackgroundColor:collectionViewColour];
[leaderCell.collectionView.layer setBorderColor:[borderColour CGColor]];
[leaderCell.collectionView.layer setBorderWidth:1.0];
[leaderCell.collectionView setDataSource:leaderCell];
[leaderCell.collectionView setDelegate:leaderCell];
}
}
// Store cell 'selected' state keyed on indexPath
NSNumber *selectedIndex = [NSNumber numberWithBool:isSelected];
[selectedIndexes setObject:selectedIndex forKey:indexPath];
[self.tableView beginUpdates];
[self.tableView endUpdates];
的{{1}}。我希望每个leaderCell
的{{1}}应用于每个UITableViewCell
而不是全部。有没有人遇到过类似的问题?提前致谢!
编辑我得出的结论是,我需要解决的问题是成功实现我想要的是将dataSource分配给正确的对象,但是,我不知道我需要分配什么它...我基本上需要dataSource来单独处理每个单元格。目前我的数据源设置为TableViewCell,它应该是正确的,因为它被分配给每个单独的单元格......