Строки и столбцы UICollectionViewFlowLayout
Учитывая UICollectionView
с макетом потока, какой самый простой способ вычислить количество столбцов (вертикальное направление) или строк (горизонтальное направление) представления коллекции?
1 ответ
Решение
Мой хакерский способ сделать это (предполагается, что все элементы имеют одинаковый размер):
- (void) countRowsAndColumns
{
NSArray *layouts = [collectionViewLayout layoutAttributesForElementsInRect:self.collectionView.bounds];
NSMutableSet *columns = [NSMutableSet set];
NSMutableSet *rows = [NSMutableSet set];
for (UICollectionViewLayoutAttributes *layout in layouts)
{
if (layout.representedElementCategory != UICollectionElementCategoryCell) continue;
CGFloat x = layout.frame.origin.x;
[columns addObject:@(x)];
CGFloat y = layout.frame.origin.y;
[rows addObject:@(y)];
}
_columnCount = columns.count;
_rowCount = rows.count;
}