Как настроить UICollectionViewCell Width и Height программно

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

Теперь я бы предпочел изменить их размеры, например

 //var size = CGSize(width: self.view.frame.width/10, height: self.view.frame.width/10) 

Я попытался установить в моем CellForItemAtIndexPath

 collectionCell.size = size 

это не сработало.

Есть ли способ достичь этого?

Редактировать :

Кажется, что ответы только изменят мою ширину и высоту CollectionView. Возможны ли конфликты в ограничениях? Есть идеи по этому поводу?

8 Solutions collect form web for “Как настроить UICollectionViewCell Width и Height программно”

используйте этот метод для установки ширины ширины пользовательской ячейки

Objective-C

 - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { return CGSizeMake(CGRectGetWidth(collectionView.frame), (CGRectGetHeight(collectionView.frame))); } 

стриж

 func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize { return CGSize(width: screenWidth, height: screenWidth); } 

Не забудьте добавить протокол «UICollectionViewDelegateFlowLayout» в объявление класса

 Class MyCollectionViewController: UICollectionViewController, UICollectionViewDelegateFlowLayout { //MARK: - UICollectionViewDelegateFlowLayout func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { return CGSize(width: 100.0, height: 100.0) } } 

Наконец получил ответ. Вы должны расширить UICollectionViewDelegateFlowLayout
Это должно быть работа с ответами выше.

Вот что вы можете сделать, чтобы иметь разную ширину и высоту для ячеек относительно размера iPhone:

 func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize { var width = (self.view.frame.size.width - 12 * 3) / 3 //some width var height = width * 1.5 //ratio return CGSize(width: width, height: height); } 

И, возможно, вам также следует отключить ограничения AutoLayout на ячейке, чтобы этот ответ работал.

Вид коллекции имеет объект макета . В вашем случае это, вероятно, макет потока ( UICollectionViewFlowLayout ). Задайте свойство itemSize макета itemSize .

Попробуйте ниже метод

 func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize { return CGSize(width: 100.0, height: 100.0) } 

Попробуйте ниже метод

 func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize { return CGSize(width: 100.0, height: 100.0) } 

Это моя версия, найдите подходящее соотношение, чтобы получить размер ячейки в соответствии с вашим требованием.

 - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { return CGSizeMake(CGRectGetWidth(collectionView.frame)/4, CGRectGetHeight(collectionView.frame)/4); } 
  • UICollectionView: как получить представление заголовка для раздела?
  • Большие ячейки в UICollectionView удаляются, пока ячейка все еще отображается
  • Анимация смещения scrollView в UICollectionView / UITableView вызывает преждевременно исчезающие ячейки
  • didSelectItemAtIndexPath не вызывается с несколькими видами коллекции на одном экране
  • UICollectionView не удаляет старые ячейки после прокрутки
  • Дополнительные виды, которые не удаляются
  • Инициализация пользовательского UICollectionViewCell
  • Начальная задержка UICollectionView
  • Недопустимая работа UITextView не работает
  • iOS 8 GM не обновляет ограничения на представления коллекции
  • почему invalidateLayout не запускает sizeForItemAtIndexPath в UICollectionView? (код прилагается)
  • Interesting Posts

    Как скрыть / показать UIView с анимацией в iPhone

    Модели iOS для создания объекта перед сохранением?

    Swift & SpriteKit: Изображение на весь экран

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

    остановка перечисления блоков для NSDictionary

    если моя «кнопка» выбрана на контроллере 1 просмотра, тогда изображение должно отображать и оставаться на контроллере просмотра 2

    iOS с использованием акселерометра для перемещения объекта по кругу

    Автоматическое тестирование с помощью приборов на устройстве

    Установите malloc_error_break в Xcode 4

    Как изменить совместимость устройств iphone app в магазине приложений?

    Как вложить UITextField в UITableViewCell?

    Как обнаружить разные слои в изображении в Objective C

    Разрешение только одной загрузки на Apple ID

    UICollectionReusableView – Отсутствует возврат в функции

    Могу ли я безопасно удалить содержимое папки с данными Xcode Derived?

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