我遇到了一个问题,让uitablveiewcell包含一个uicollectionview。tableview设置是:
_tableViewOfSend = ({
TPKeyboardAvoidingTableView *tableView = [[TPKeyboardAvoidingTableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain];
tableView.backgroundColor = [UIColor whiteColor];
tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
tableView.delegate = self;
tableView.dataSource = self;
tableView.estimatedRowHeight = 200;
tableView.rowHeight = UITableViewAutomaticDimension;
[tableView registerClass:[TopicWriteTextCell class] forCellReuseIdentifier:kTextCell];
[tableView registerClass:[TopicWriteImageCell class] forCellReuseIdentifier:kImageCell];
[self.view addSubview:tableView];
tableView;
});
我添加了一些约束:
[_tableViewOfSend autoPinEdge:ALEdgeTop toEdge:ALEdgeBottom ofView:_navBar withOffset:1];
[_tableViewOfSend autoPinEdge:ALEdgeLeft toEdge:ALEdgeLeft ofView:self.view];
[_tableViewOfSend autoPinEdge:ALEdgeRight toEdge:ALEdgeRight ofView:self.view];
[_tableViewOfSend autoPinEdge:ALEdgeBottom toEdge:ALEdgeBottom ofView:self.view];
tableviewcell还为自我调整添加了约束。在我的演示中,我只是用于呈现图像。所以我在其中添加了一个UICollectionView。
UICollectionViewLeftAlignedLayout *layout = [[UICollectionViewLeftAlignedLayout alloc] init];
layout.minimumLineSpacing = 5;
layout.minimumInteritemSpacing = 5;
CGFloat widthOfScreen = [UIScreen mainScreen].bounds.size.width;
CGFloat cellWidth =(widthOfScreen - 20 - 5 * 2) / 3;
NSLog(@"cell height%f", cellWidth);
layout.itemSize = CGSizeMake(cellWidth, cellWidth);
_imageCollectionView = [[UICollectionView alloc] initWithFrame:CGRectMake(0, 0, widthOfScreen, cellWidth*2 + 10) collectionViewLayout:layout];
_imageCollectionView.delegate = self;
_imageCollectionView.dataSource = self;
_imageCollectionView.scrollEnabled = NO;
_imageCollectionView.backgroundColor = [UIColor colorWithRed:0.6 green:1 blue:0.6 alpha:0.5];
[_imageCollectionView registerClass:[TopicWriteImageCCell class] forCellWithReuseIdentifier:kImageCellIndentify];
[self.contentView addSubview:_imageCollectionView];
并添加UICollectionView的约束:
[_imageCollectionView autoPinEdge:ALEdgeTop toEdge:ALEdgeTop ofView:self.contentView];
[_imageCollectionView autoPinEdge:ALEdgeLeft toEdge:ALEdgeLeft ofView:self.contentView withOffset:10];
[_imageCollectionView autoPinEdge:ALEdgeRight toEdge:ALEdgeRight ofView:self.contentView withOffset:-10];
[_imageCollectionView autoPinEdge:ALEdgeBottom toEdge:ALEdgeBottom ofView:self.contentView];
我只是将itemsize设置为固定值。 UICollectionViewCell只添加一个ImageView。并添加左/上/右/下限制。项目编号是5.在我看来,我已经修复了itemsize,并添加了所有需要的约束,它应该显示5个具有正确高度的项目。但只有3个项目,高度不对。看来细胞没有自我调整大小。
有人可以帮忙吗?