Хобрук: Ваш путь к мастерству в программировании

Проблемы с распределением ячеек в UICollectionViewFlowLayout

В настоящее время я пытаюсь расставить некоторые пользовательские ячейки в 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

Чего мне здесь не хватает, чтобы между каждой ячейкой было одинаковое пространство?


Ответы:


1

Проблема здесь заключалась в том, что товар, возвращаемый из

- (CGSize) collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath

перекрывал минимальное значение InterimSpacing. Поскольку я искал что-то с systemfontofsize = 8, мне нужно было убедиться, что мой промежуточный интервал превышает это значение. Установка его на 5, который я указал выше, вызвала странный конфликт, установка на 15 равномерно распределяет ячейки, потому что количество пикселей между ячейками больше расчетного размера.

13.01.2015
Новые материалы

Как свинг-трейдеры могут использовать ИИ для больших выигрышей
По мере того как все больше и больше профессиональных трейдеров и активных розничных трейдеров узнают о возможностях, которые предоставляет искусственный интеллект и машинное обучение для улучшения..

Как построить любой стол
Я разработчик программного обеспечения. Я люблю делать вещи и всегда любил. Для меня программирование всегда было способом создавать вещи, используя только компьютер и мое воображение...

Обзор: Машинное обучение: классификация
Только что закончил третий курс курса 4 часть специализации по машинному обучению . Как и второй курс, он был посвящен низкоуровневой работе алгоритмов машинного обучения. Что касается..

Разработка расширений Qlik Sense с qExt
Использование современных инструментов веб-разработки для разработки крутых расширений Вы когда-нибудь хотели кнопку для установки переменной в приложении Qlik Sense? Когда-нибудь просили..

React Hooks: основы деструктуризации массива
Kent C. Dodds написал классный пост о том, как грядущая функция React под названием Hooks работает на капоте. Предстоящий хук React useState основан на деструктурировании массива, давайте..

Пакеты R, используемые в Tesla
Добро пожаловать обратно! R — очень популярный язык программирования, используемый множеством компаний, включая Tesla! Итак, давайте взглянем на некоторые пакеты R, которые использует Tesla...

Сокращение и слияние токенов для эффективных моделей VL: обзор
Часто в задачах, связанных с компьютерным зрением и НЛП, вычислительно затратная и требующая большого объема памяти обработка становится препятствием для более быстрого логического вывода модели, а..