Я хочу расположить ячейки слева направо. Поэтому я использую UICollectionViewFlowLayout
:
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
// use this for let cell width fit for label width
layout.estimatedItemSize = CGSizeMake(80, 30);
self.collectionView = [[UICollectionView alloc] initWithFrame:self.view.bounds collectionViewLayout:layout];
Ширина ячейки соответствует ширине ярлыка:
// cell code
@implementation CQGoodsSearchCell
- (void)setupUI {
self.contentView.layer.cornerRadius = 15;
self.contentView.layer.masksToBounds = YES;
self.contentView.backgroundColor = [UIColor colorWithRed:1.00 green:1.00 blue:1.00 alpha:1.00];
self.nameLabel = [[UILabel alloc] init];
[self.contentView addSubview:self.nameLabel];
self.nameLabel.font = [UIFont systemFontOfSize:15];
self.nameLabel.textColor = [UIColor colorWithRed:0.18 green:0.18 blue:0.18 alpha:1.00];
[self.nameLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.height.mas_equalTo(30);
make.top.bottom.mas_offset(0);
make.left.mas_offset(10);
make.right.mas_offset(-10);
}];
}
Все идет хорошо, когда имеется более одной клетки:
Однако ячейка находится в центре, когда имеется только одна ячейка:
Если я использую itemSize
вместо estimatedItemSize
, все в порядке:
layout.itemSize = CGSizeMake(80, 30);
* * 1030
Я действительно смущен этим. Я не хочу, чтобы ячейка находилась в центре представления коллекции, но я также хочу использовать автоматическое расположение, чтобы ширина ячейки регулировалась сама собой.
Так есть ли способ избежать этого?