ios UITableView行内嵌横向UICollectionView
1.在要添加CollectionView的行类添加UICollectionViewDelegate代理,并添加CollectionView的输出口
@interface XMWorkSpaceFristTableViewCell : UITableViewCell<UICollectionViewDelegate,UICollectionViewDataSource>
@property (weak, nonatomic) IBOutlet UICollectionView *workspaceCollectionView;
@end
2.在这个TableViewCell.m里添加代理方法
- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView {
return 1;
}
// 设置cell大小 itemSize:可以给每一个cell指定不同的尺寸
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
return CGSizeMake(50, 50);
}
#pragma mark - UICollectionViewDataSource
// 每个分区上得元素个数
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
return 10;
}
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
XMWorkSpaceCollectionViewCell *cell =(XMWorkSpaceCollectionViewCell *)[collectionView dequeueReusableCellWithReuseIdentifier:@"WorkSpaceCollectionCell" forIndexPath:indexPath];
return cell;
}
3在生成这个TableViewCell时把collectionView代理
3.1 关闭collectionView滚动到顶部,因为collectionView继承的UIScrollView,而UIScrollView是可以滚动到顶部的
设置scrollsToTop
3.2 关闭collectionView垂直滚动条,理由同上
设置showsVerticalScrollIndicator
3.3 关闭collectionView水平滚动条,可选,关掉看起来视觉效果更好
设置showsHorizontalScrollIndicator
XMWorkSpaceFristTableViewCell *cell =(XMWorkSpaceFristTableViewCell *)[tableView dequeueReusableCellWithIdentifier:@"XMWorkSpaceFristTableViewCell" forIndexPath:indexPath];
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
layout.scrollDirection = UICollectionViewScrollDirectionHorizontal;
[cell.workspaceCollectionView setCollectionViewLayout:layout];
//cell.workspaceCollectionView.backgroundColor = [UIColor blueColor];
cell.workspaceCollectionView.delegate = cell.self;
cell.workspaceCollectionView.dataSource = cell.self;
cell.workspaceCollectionView.scrollsToTop = NO;
cell.workspaceCollectionView.showsVerticalScrollIndicator = NO;
cell.workspaceCollectionView.showsHorizontalScrollIndicator = NO;
[cell.workspaceCollectionView registerClass:[XMWorkSpaceCollectionViewCell class]
forCellWithReuseIdentifier:@"WorkSpaceCollectionCell"];
[cell.workspaceCollectionView reloadData];
return cell;