У меня есть представление коллекции, которое является делегатом и источником данных, и с макетом, определенным следующим образом:
- (id)initWithCoder:(NSCoder *)aDecoder{
self = [super initWithCoder:aDecoder];
if (self){
self.dataSource = self;
self.delegate = self;
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
layout.minimumLineSpacing = 0;
layout.sectionInset = UIEdgeInsetsMake(0, 8, 0, 8);
layout.scrollDirection = UICollectionViewScrollDirectionHorizontal;
layout.footerReferenceSize = CGSizeMake(1, 70);
layout.itemSize = CGSizeMake(60, 70);
layout.minimumInteritemSpacing = 4.0f;
[self setCollectionViewLayout:layout];
}
return self;
}
Код выполняется правильно, за исключением минимального интервала между элементами.
Результатом является представление коллекции, в котором элементы в каждом разделе вообще не имеют пробелов.
Минимальное значение интервала, которое я установил, должно быть скорректировано вверх, а не вниз, верно?
Так почему же результат, который я вижу, такой же, как на этом экране? (Я раскрасил каждый элемент коллекции, чтобы было ясно, что нет пробелов)
Для более подробной информации, вот кадры, которые я регистрирую, как вы можете видеть, третий элемент начинается сразу после второго (145 пикселей = 85 (предыдущий элемент. x) + 60 (предыдущий элемент. ширина)) без интервала.
2014-04-22 10:25:49.954 App[15172:60b] self <PhotoIndexCollectionViewCell: 0x16576630; baseClass = UICollectionViewCell; frame = (8 0; 60 70); layer = <CALayer: 0x165777a0>>
2014-04-22 10:25:49.955 App[15172:60b] self <PhotoIndexCollectionViewCell: 0x16578380; baseClass = UICollectionViewCell; frame = (85 0; 60 70); layer = <CALayer: 0x16578520>>
2014-04-22 10:25:49.955 App[15172:60b] self <PhotoIndexCollectionViewCell: 0x16586620; baseClass = UICollectionViewCell; frame = (145 0; 60 70); layer = <CALayer: 0x165866c0>>
Что я здесь неправильно понимаю?
Я даже пытался добавить этот метод, который на самом деле вызывается для каждого раздела, но результат тот же.
- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section{
return 4.0f;
}