я использую UICollectionView (взгляды с UIButtons), чтобы забронировать время:UICollectionView с несколькими рядами
override func viewDidLoad() {
super.viewDidLoad()
collectionViewTime.register(UINib(nibName: "TimeCollectionViewCell", bundle: nil), forCellWithReuseIdentifier: "timecell")
collectionViewTime.dataSource = self
collectionViewTime.delegate = self
if let layout = collectionViewTime.collectionViewLayout as? UICollectionViewFlowLayout {
layout.scrollDirection = .vertical
}
}
func numberOfSections(in collectionView: UICollectionView) -> Int {
return 1
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return Timeline.count
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
let flowLayout = collectionViewLayout as! UICollectionViewFlowLayout
let numberOfItems = CGFloat(collectionView.numberOfItems(inSection: 0))
let combinedItemWidth = (numberOfItems * flowLayout.itemSize.width) + ((numberOfItems - 1) * flowLayout.minimumInteritemSpacing)
let padding = (collectionView.frame.width - combinedItemWidth)/2
return UIEdgeInsets(top: 0, left: padding, bottom: 0, right: padding)
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "timecell", for: indexPath) as! TimeCollectionViewCell
let time = Timeline[indexPath.row][0]
cell.btnTime.setTitle(DateManager.dateToTime(date: time.0), for: .normal)
return cell
}
И я получил все виды (UIButtons) в одной строке: Как установить автоматически движущиеся UIViews в новые строки? Итак, в моем случае (iPad) одна строка будет содержать 7 UIViews, iPhone будет содержать 4-5 UIViews в одной строке.
UICollectionView вычисляет его ширина и ячейки так что скажем, если ширина UICollectionView равна 320, а одна ячейка - 200, она будет отображать одну ниже другой, поэтому вам нужно настроить ширину таким образом, чтобы ширина как вы хотите, чтобы он показывал ячейки. Если вы хотите показать бок о бок, в этом случае ширина двух ячеек должна располагаться в общей ширине UICollectionView – iphonic