UICollectionView, просто установите ячейку в ширину?
Здесь простой UICollectionView в желтом
![enter image description here]()
Красная стрелка устанавливает ширину ячейки. (TBC: нажатие на розовую ячейку: для "размера" выберите "По умолчанию", то, что вы установили в красной стрелке, станет размером ячейки.)
Пример: для вертикального iPhone установите ширину до 320.
Но это кажется сумасшедшим... конечно, я могу установить ширину ячейки на основе ширины UICollectionView?
Нет проблем с автоматизацией самого представления.
![enter image description here]()
Это прекрасно работает.
Но кажется сумасшедшим, что я не могу установить ширину CELL как "то же, что и представление". Кажется, трудно поверить, что нужно установить его вручную, в коде?
TBC Другими словами, как указывает Никита,
-(CGSize) collectionView:(UICollectionView *)collectionView
layout:(UICollectionViewLayout *)collectionViewLayout
sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
return self.view.frame.size;
}
(действительно, вам также это необходимо...)
-(UIEdgeInsets)collectionView:(UICollectionView *)collectionView
layout:(UICollectionViewLayout*)collectionViewLayout
insetForSectionAtIndex:(NSInteger)section
{
return UIEdgeInsetsMake(0,0,0,0); //t,l,b,r
}
На самом деле - вы должны сделать это в коде?! Нет способа сделать это в Раскадке, с автозапуском или чем-нибудь еще?!
Ответы
Ответ 1
Я думаю, вам нужно взглянуть на
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
of UICollectionViewLayout
, где вы можете установить размер на основе ориентации и текущего кадра.
Казалось бы, вам просто нужно сделать это в коде.
Ответ 2
Существует простой способ сделать это. Вот быстрый код. Предполагает, что вам нужен один элемент в целом, и в примере мои ячейки имеют 64 pts high, и я хочу 8 очков для боковых полей, и, наконец, collectionView - это имя вашего UICollectionView.
Вставьте это в viewDidLoad:
let layout = collectionView?.collectionViewLayout as! UICollectionViewFlowLayout
layout.itemSize = CGSize.init(width: (UIScreen.main.bounds.width - 16), height: 64.0)
Это приведет к тому, что все ячейки будут по умолчанию равны этому размеру. Вы все же можете переопределить отдельные ячейки, если вы подклассифицируете UICollectionViewLayout или UICollectionViewFlowLayout, как указано в других ответах. Но если вы просто хотите иметь больше табличного представления, как поведение, это должно сработать.
Ответ 3
I моя вставка ячейки для ввода лишних фигур ![введите описание изображения здесь]()