Я реализую UICollectionView, который должен листать горизонтально.UICollectionViewCell должен быть того же размера, что и UICollectionView.Ячейка имеет 2 встроенных ряда.Первый имеет UITextView и UIButton, а второй имеет UITextView.
UICollectionviewCell и ограничения работают в режиме предварительного просмотра для различных размеров iPhone (например, 4s, 8, 8plus), но при работе в симуляторе подкачка страниц работает некорректно, и ширина ячейки, я думаю, не равнаt по центру, и ячейка не перемещается достаточно далеко, чтобы достичь следующей ячейки, в результате чего ячейка выглядит обрезанной.
Я пробовал решение по этому адресу: UICollectionView Горизонтальный пейджинг не центрирован
но я не могу правильно определить ширину и центрирование.Код, который я использую, приведен ниже.
internal class AccessViewController : UIViewController, UICollectionViewDataSource, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout {
//...
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell", for: indexPath) as! PagerContentCollectionViewCell
//Set the cell title
cell.txtTitle.text = "title"
//add a target for the call capability
cell.btnCall.addTarget(self, action: #selector(didButtonClick), for: .touchUpInside)
//description
cell.txtDescription.text = "description"
return cell
}
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
//let i = IndexPath(item: titles.count, section: 0)
collectionView.scrollToItem(at: indexPath, at: .right, animated: true)
print("Selected")
collectionView.reloadData()
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
return 0
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
let frameSize = collectionView.frame.size
return CGSize(width: frameSize.width, height: frameSize.height)
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
let frameSize = collectionView.frame.size
return CGSize(width: frameSize.width, height: frameSize.height)
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
return UIEdgeInsets(top: 0, left: 5, bottom: 0, right: 5)
}
Ширина и высота UICollectionView составляют 267, 153. Ширина и высота UICollectioViewCell 262, 150 Вставки разделов - 0,0,0,0.
Любая помощь очень ценится.
Спасибо
Редактировать: я добавил в код, который я пытался использовать для макета.Я, наверное, тоже что-то упускаю.