Извините за вопрос новичка, но по прошествии многих часов я не могу понять, как правильно расположить collectionViewCells, чтобы он выглядел как страница instagram с клипами-историями вверху.
В настоящее время это лучшее, что у меня есть сcollectionView (не работает) и tableView (работает):
Однако есть несколько проблем.Прежде всего, обратите внимание, что верхняя панель, которая является панелью collectionView, не находится на одном уровне слева с элементами tableView под ней.
Мой код для этого:
extension ChatTableViewController : UICollectionViewDataSource, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout {
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return 3
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "profileClipView", for: indexPath) as! ProfileClipViewCell
cell.nameLabel.text = "text"
cell.imageCell.image = UIImage(named: "temp_me")
return cell
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
let side = self.collectionView.bounds.size.height - 16
return CGSize(width: side - 10, height: side)
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
return UIEdgeInsets.init(top: 8, left: 8, bottom: 8, right: 8)
}
}
Понятноэто расстояние больше 8 пикселей, поэтому мое фундаментальное понимание вставок должно быть неверным.Кроме того, я заметил, что нет способа установить UICollectionViewDelegateFlowLayout
в коде, я предполагаю, что он устанавливается, когда я задаю делегат / источник данных collectionView.
Другая проблема, с которой я сталкиваюсь, заключается в том, что текст под фотографияминикогда не появляется.Я создал xib, который выглядит следующим образом:
ImageView имеет размер 1: 1 и обрезан сверху и по бокам, нижний черный ящик представляет собойlableView, который обрезается по изображению и снизу и центрируется по внешнему виду.Обратите внимание, что этот ярлык не появляется!
Так что в конечном итоге я задаюсь вопросом, как привести ячейки вровень с краями, и удивляюсь, почему ярлык не появляется.Ценю помощь безмерно!