ios UITableView行内嵌横向UICollectionView

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;



发布了7 篇原创文章 · 获赞 4 · 访问量 287

猜你喜欢

转载自blog.csdn.net/qq_41586150/article/details/103936692