У меня есть CollectionView.Вот реализация для моего CollectionView.
- (void)setupCollectionView{
self.flowLayout = [[UICollectionViewFlowLayout alloc] init];
[self.flowLayout setSectionInset:UIEdgeInsetsMake(0, 20, 0, 0)];
self.flowLayout.itemSize = CGSizeMake(150, 35);
self.flowLayout.minimumLineSpacing = 20;
[self.flowLayout setScrollDirection:UICollectionViewScrollDirectionHorizontal];
self.vwCollectionView = [[UICollectionView alloc]initWithFrame:CGRectMake(0, 0, self.vwQuickReplyContainer.frame.size.width, self.vwQuickReplyContainer.frame.size.height) collectionViewLayout:self.flowLayout];
self.vwCollectionView.backgroundColor = [UIColor clearColor];
[self.vwCollectionView registerNib:[UINib nibWithNibName:@"QuickrepliesCell" bundle:nil] forCellWithReuseIdentifier:@"QuickrepliesCell"];
[self.vwQuickReplyContainer addSubview:self.vwCollectionView];
self.vwQuickReplyContainer.hidden = YES;
[self.vwCollectionView setShowsHorizontalScrollIndicator:NO];
[self.vwCollectionView setDataSource:self];
[self.vwCollectionView setDelegate:self];
[self.vwCollectionView reloadData];
}
Здесь я установил minimalLineSpacing, чтобы установить минимальное расстояние между последовательными столбцами.В соответствии с этой документацией , я понимаю, что значение представляет минимальное расстояние между последовательными столбцами для горизонтально прокручиваемой сетки.Мне также было установлено пространство между моими камерами.Вот результаты этого .
Но чтобы выглядеть лучше.Я хочу изменить ширину своей ячейки в соответствии с размером ее содержимого.Итак, я обновил кадр моей ячейки следующим образом.
- (QuickrepliesCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
self.cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"QuickrepliesCell" forIndexPath:indexPath];
QuickReply *model = [[QuickReply alloc]initWithDictionary:self.quickRepliesArr[indexPath.row] error:nil];
self.cell.lblOpion.text = model.title;
CGFloat width = [self.cell.lblOpion.text sizeWithFont:WWLATOREGULAR(15)].width;
self.cell.frame = CGRectMake(self.cell.frame.origin.x, self.cell.frame.origin.y, width + 24, self.cell.frame.size.height);
return self.cell;
}
Вот результаты после обновления ширины ячейки. .
Я незнать причину, по которой пространство между моими клетками изменилось после изменения размера ячейки.Может кто-нибудь советовать по этому поводу?спасибо.