Это должно быть сделано с UICollectionView
, у него есть специальный делегат, UICollectionViewDelegateFlowLayout
, который позволяет очень легко достичь этого вида.
Шаг 1
Добавьте UICollectionViewDelegateFlowLayout
в свой UIViewController
, например: <#Your View Controller#> : UICollectionViewDelegateFlowLayout
Шаг 2
Количество ячеек в строке рассчитывается на основена количество ячеек, которые соответствуют ширине UICollectionView.Таким образом, наличие ячеек с половиной ширины будет соответствовать 2 ячейкам в ряду.
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
return CGSize(width: collectionView.frame.width / 2, height: /* your desired height here */)
}
Советы:
Вы можете даже сделать его немного меньше, чемполовину экрана, умножив значения следующим образом: (collectionView.frame.width / 2) * 0.98
, вы также можете вычесть постоянные значения.
Возможно, вам придется установить collectionView.minimumInteritemSpacing = 0
, так как значение этого атрибута по умолчанию равно 10.0
Документация: UICollectionViewFlowLayout