Я создаю приложение ios, и мне нужно отобразить 8 ячеек в строке в ландшафтном режиме. Также должно быть 5 строк и всего 40 ячеек. Он не должен быть независимым от устройства, будь то iPad или iPhone, такой же внешний вид должен быть доставлен.Ячейка квадратных ячеек в UICollectionView
ответ
Ответ Jpark822 правильный, однако вы будете бороться с расстоянием и смещением ваших ячеек.
Что вы можете сделать, это использовать UICollectionViewFlowLayout подкласс:
Давайте назовем это PrettyLayout!
@implementation PrettyFlowLayout
#define itemCountPerLine 8
#define itemCountPerColumn 5
-(void) prepareLayout
{
CGFloat lineSpacing = ([self collectionViewContentSize].width - self.itemSize.width * itemCountPerLine)/(itemCountPerLine + 1);
CGFloat interItemSpacing = ([self collectionViewContentSize].height - self.itemSize.height * itemCountPerColumn)/(itemCountPerColumn + 1);
self.minimumLineSpacing = lineSpacing;
self.minimumInteritemSpacing = interItemSpacing;
self.sectionInset = UIEdgeInsetsMake(interItemSpacing, lineSpacing, interItemSpacing, lineSpacing);
}
- (CGSize)itemSize
{
int size;
size = (int) MIN(self.collectionView.frame.size.width/itemCountPerLine, self.collectionView.frame.size.height/itemCountPerColumn)
return CGSizeMake((CGFloat)size, (CGFloat)size);
}
@end
Тогда все, что вам нужно сделать, это объявить экземпляр PrettyLayout как макет вашего CollectionView.
PS: Не пытался мой код, надеюсь, что он сработает
Не работает, если разделенная ширина является десятичной с десятичным значением, превышающим 0,5. Допустим, ваша общая ширина экрана равна 750, разделенная на 8 - 93,75. Если вы поместите это как ширину ячейки, фактическая ширина будет 94px, что приведет к суммарному количеству пикселей 752, что означает, что последняя ячейка будет в следующей строке. –
Вы правы, отредактировал мой код – Kujey
@ Kujey, он работал без ошибок, спасибо. – elifyilbasi
Убедитесь, что вы реализуете UICollectionViewDelegate and UICollectionViewDataSource
затем назначить делегата и данных источника: myCollectionView.delegate = self;
myCollectionView.dataSource = self;
затем использовать DataSource и делегировать методы в CollectionView, чтобы передать ему информацию в контроллере представления:
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView { }
- (NSInteger)collectionView:(UICollectionView *)collectionView
Вы можете иметь 5 разделов 8 пунктов каждый, или просто один большой участок 40
Если вы хотите, чтобы указать размер вашего зрения сбора клеток, а затем реализовать UICollectionViewDelegateFlowLayout
то вы можете использовать метод делегата:
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
, чтобы указать размер. таким образом, вы можете настроить свое представление таким образом, чтобы вы могли сразу отобразить все 5 строк по 8
- 1. Ячейка UICollectionView не отображается
- 2. Заказ ячеек в UICollectionView
- 3. AutoLayout для ячеек UICollectionView
- 4. «Ленивый рисунок» ячеек UICollectionView
- 5. UICollectionView выравнивание ячеек
- 6. Переупорядочение ячеек UICollectionView в Swift
- 7. Ячейка UICollectionView cellForItemAtIndexPath не распознает отдельные кадры ячеек
- 8. Центрирование ячеек UICollectionView в контейнере
- 9. Ячейка UICollectionView выровнена с экрана?
- 10. Ячейка ячеек в javafx
- 11. UICollectionView + SDWebImage + Повторное использование ячеек
- 12. пользовательская ячейка для UICollectionView
- 13. UICollectionView ячейка индивидуальная высота
- 14. UICollectionView повторяющаяся ячейка
- 15. UICollectionView горизонтальная ячейка
- 16. UICollectionView последняя ячейка не согласована
- 17. Повторное использование UICollectionview Текущая ячейка
- 18. Ячейка UICollectionView не добавляется как подзаголовок UICollectionView
- 19. UiCollectionView дизайн отдельных ячеек
- 20. Горизонтальное переупорядочение ячеек UICollectionView
- 21. UICollectionView Самостоятельный размер Пользовательская ячейка
- 22. Горизонтальная прокрутка UICollectionView полностью вправо/последняя ячейка
- 23. Deque многоразовая ячейка без коммутатора в UICollectionView
- 24. Предотвращение мерцания видимых ячеек UICollectionView
- 25. Проблемы повторного использования ячеек UICollectionView
- 26. Сетка: 6 x 7 квадратных ячеек
- 27. Простой способ пошатывания ячеек в UICollectionView
- 28. Размеры ячеек UICollectionView
- 29. UICollectionView пользовательский раскладка ячеек
- 30. UICollectionView - несколько разных ячеек
Итак, в чем ваш вопрос? –
Как я могу это достичь? – elifyilbasi
Нужны ли вам ячейки квадратной формы? – Kujey