ответ

0

Вам нужно прокрутить представление? или исправлено ?, Потому что, если вы не прокручиваете, вы можете использовать UIStackView и дать ячейке разные множители ширины.

Но если у вас есть для прокрутки вы можете использовать https://github.com/keighl/KTCenterFlowLayout и изменить размер ячейки с методами делегата от UICollectionView

0

Если элементы одинакового размера, вы можете использовать UICollectionViewFlowLayout и установить его itemSize.

Если вас заинтересовали какие-либо другие элементы, то можете использовать UICollectionViewFlowLayout и его метод collectionView:layout:sizeForItemAtIndexPath:, чтобы возвращать требуемые размеры.

Бар в верхней части может быть UICollectionElementKindSectionHeader или просто большой ячейкой.

0

Для людей, которым требуется прокрутка макета, можете попробовать ScrollableStackView библиотека. Вот страница GitHub:

https://github.com/gurhub/ScrollableStackView

Вот некоторые примеры кодов:

Swift

import ScrollableStackView 

var scrollable = ScrollableStackView(frame: view.frame) 
view.addSubview(scrollable) 

// add your views with 
let rectangle = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 55)) 
rectangle.backgroundColor = UIColor.blue 
scrollable.stackView.addArrangedSubview(rectangle) 
// ... 

Objective-C

@import ScrollableStackView 

ScrollableStackView *scrollable = [[ScrollableStackView alloc] initWithFrame:self.view.frame]; 
scrollable.stackView.distribution = UIStackViewDistributionFillProportionally; 
scrollable.stackView.alignment = UIStackViewAlignmentCenter; 
scrollable.stackView.axis = UILayoutConstraintAxisVertical; 
[self.view addSubview:scrollable]; 

UIView *rectangle = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 55)]; 
[rectangle setBackgroundColor:[UIColor blueColor]]; 

// add your views with 
[scrollable.stackView addArrangedSubview:rectangle]; 
// ... 

Надеюсь, это поможет кому-то.