В настоящее время я пытаюсь расставить некоторые пользовательские ячейки в UICollectionViewFlowLayout с помощью ячеек с динамическим размером. Я обнаружил, что расстояние между ячейками непоследовательно. Я читал о макете и реализовал все методы делегата для контроля минимального размера, но, похоже, это не имеет никакого эффекта. Вот вид, как он есть сейчас
И вот мой код для определения размера:
В макете и представлении делегата:
- (CGFloat) collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section {
return 5;
}
- (CGFloat) collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section {
return 5;
}
- (CGSize) collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
Tag *tag = [[Search sharedManager] tagAtIndexPath:indexPath];
NSString *labelText = tag[@"Name"];
CGSize labelTextSize = [labelText sizeWithAttributes:@{NSFontAttributeName: [UIFont systemFontOfSize:8.0f]}];
return labelTextSize;
}
Пользовательская ячейка
@implementation TagCellCollectionViewCell
- (id) initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
self.tagBtn.titleLabel.font = [UIFont systemFontOfSize:8.0f];
self.tagBtn = [UIButton buttonWithType:UIButtonTypeCustom];
// self.tagBtn.frame = CGRectMake(-frame.size.width/4+20, -frame.size.width/4+5, frame.size.width, frame.size.height);
[[self.tagBtn layer] setBorderColor:[[UIColor colorWithRed:234.0f/255.0f green:99.0f/255.0f blue:74.0f/255.0f alpha:1.0f] CGColor]];
[[self.tagBtn layer] setBorderWidth:1.0f];
self.tagBtn.backgroundColor = [UIColor whiteColor];
[self.tagBtn setTitleColor:[UIColor colorWithRed:234.0f/255.0f green:99.0f/255.0f blue:74.0f/255.0f alpha:1.0f] forState:UIControlStateNormal];
[self.contentView addSubview:self.tagBtn];
}
return self;
}
@end
Чего мне здесь не хватает, чтобы между каждой ячейкой было одинаковое пространство?