在我的项目中,我有UITableView
个不同类型的单元格。
其中一个单元格包含水平滚动UICollectionView
。
当我运行项目时,UICollectionView
已正确填充,但我无法水平滚动,单击并在此UICollectionView
内拖动只允许我垂直滚动桌面视图。
所需的行为是使用UICollectionView在单元格内单击将允许用户水平滚动,单击任何其他单元格允许垂直滚动。
我假设我需要覆盖/传递或禁用此单元格中的某些OnClick事件,但我找不到正确的解决方案。
任何帮助我指向良好方向的人都将不胜感激:)
创建有关TableViewCell的代码如下所示。
@property(nonatomic) HorizontalCollectionViewDelegate *horizontalCollectionViewDelegate;
- (UITableViewCell *) createHorizontalScrollCell:(NSIndexPath *)indexPath tableView:(UITableView *)tableView{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:myCellIdentifier];
MyHorizontalScrollingTableCell *myHorizontalScrollingTableCell = (MyHorizontalScrollingTableCell *)cell;
UICollectionView *horizontalCollectionView = myHorizontalScrollingTableCell.myHorizontalCollectionView;
//Link collectionView to its delegate
self.horizontalCollectionViewDelegate = [[HorizontalCollectionViewDelegate alloc] init];
horizontalCollectionView.delegate = _horizontalCollectionViewDelegate;
horizontalCollectionView.dataSource = _horizontalCollectionViewDelegate;
_horizontalCollectionViewDelegate.data = myData;
//Define the cells in HorizontalCollectionView
UINib *cellNib = [UINib nibWithNibName:@"CollectionViewCell" bundle:nil];
[horizontalCollectionView registerNib:cellNib forCellWithReuseIdentifier:@"horizCell"];
//Define flow of AttachmentsCollectionView
UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init];
[flowLayout setItemSize:CGSizeMake(90, 90)];
[flowLayout setScrollDirection:UICollectionViewScrollDirectionHorizontal];
[horizontalCollectionView setCollectionViewLayout:flowLayout];
return cell;
}
编辑:我在项目的其他地方使用相同的HorizontalCollectionViewDelegate(只是不在tableview中)并且在那里工作,所以我认为问题不存在。
编辑2 :问题解决了,原来没有问题(见下面的答案),我会在两天内接受我的回答。
答案 0 :(得分:1)
...解决
原来我只需要向UICollectionView
添加更多内容。
使用2或3个元素,单元格未填充整个视图。因为滑动动画没有显示我假设某处出现了错误。
然而,只需添加更多内容即可解决此问题。