Размер ячейки UICollectionView в AutoLayout

Поэтому я использую AutoLayout в раскадровке с AutoLayout . Я пытаюсь установить размер ячейки на основе самого collectionView , и он основан на методе [collectionView: layout: sizeForItemAtIndexPath:] . collectionView также зависит от автоматического макета, и он дает неправильный размер в первый раз (я предполагаю, что это до отображения макета). Я знаю, что они будут иметь правильный размер после viewDidLayoutSubviews метода viewDidLayoutSubviews но он вызывает двойную перезагрузку элементов collectionView , что приводит к сбоям пользовательского интерфейса во время выполнения.

Ниже приведен метод [collectionView: layout: sizeForItemAtIndexPath:] моей реализации.

 - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { CGSize innerSize = CGSizeMake(galleryView.frame.size.width - 80, galleryView.frame.size.height - 40); GLPhotoAsset *photo = [(PCOpticsPhotoPoint *)_cluster.points[indexPath.row] photo]; CGFloat ratio = MIN(innerSize.width / photo.size.width, innerSize.height / photo.size.height); return CGSizeMake(photo.size.width * ratio, photo.size.height * ratio); } 

  • Добавление и удаление NSMutableDictionary KVO
  • Метод addObject NSMutableSet заменяет дубликат или игнорирует вставку?
  • Как написать свой собственный итератор для свойства коллекции свойства (с правильным типом)?
  • в Collectionview как установить цвета в соответствии с выбором?
  • Помещение всех строк, находящихся в обоих двух массивах, в другой массив
  • Swift Collection underestimateCount использование
  • Должен ли я всегда проверять, что init ...] возвращает nil?
  • 2 Solutions collect form web for “Размер ячейки UICollectionView в AutoLayout”

    Убедитесь, что проверено свойство просмотра Clip Subviews. , , ,

    И ваше свойство cellView cellView должно быть правильным в разделе «Размер и местоположение». , ,

    Может быть, это поможет вам. , ,

    Поскольку вы получаете неправильный размер макета до того, как вызывается sizeForItemAtIndexPath: затем перейдите в раскадровку и проверьте размер ячейки, заданный для этих 3 – CollectionView , CollectionViewCell и CollectionViewFlowLayout

    Сделайте их такими же. (также размер по отношению к размеру просмотра коллекции по умолчанию, как вам нужно)

    Interesting Posts

    Получить список сертификатов с устройства iOS

    Objective-C Time-Based Observer Pattern

    Как изменить изображение аннотации для координаты?

    Swift: свойство Array с элементами, соответствующими классу и нескольким протоколам одновременно

    Пустая страница при входе в систему с помощью Facebook SDK на iOS 10

    Копирование NSDictionary в NSArray

    Предупреждение о недопустимом значении компиляции приложения

    Включить кнопку в Swift только в том случае, если все текстовые поля заполнены

    Ошибки DP5 в IOHIDEventQueue.c

    Ошибка MKMapView и ошибка SFViewController

    Проблемы с NSURLSession Не отправлять HTTPAdditionalHeaders

    Как сделать зеркалирование экрана с помощью AirPlay из приложения (а не с панели управления) в iOS?

    Как сделать такой эффект в iOS, эффект размытия он становится более компактным до нижней стороны

    Локализация различных раскадровки на цель

    Ошибка: «Невозможно добавить сопоставление для новостей keyPath, один уже существует …»

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.