UICollectionView с двумя UICollectionViewFlowLayout - PullRequest
2 голосов
/ 25 июня 2019

Я работаю над проектом в iOS, Swift.Как мы можем назначить один collectionView с двумя различными макетами потока?Здесь мне нужно, чтобы мой UICollectionViewCell был похож на стековую карту, для этого я использую CardsCollectionViewLayout (внешний файл pod).

myCollectionView.collectionViewLayout = CardsCollectionViewLayout()

И он работает нормально.Но проблема в том, что я не могу отрегулировать ширину UICollectionViewCell с шириной устройства.Для этого мне нужно использовать UICollectionViewDelegateFlowLayout.

func collectionView(_ collectionView: UICollectionView,
                    layout collectionViewLayout: UICollectionViewLayout,
                    sizeForItemAt indexPath: IndexPath) -> CGSize {
    let nCol = 1
    let flowLayout = collectionViewLayout as! UICollectionViewFlowLayout
    let totalSpace = flowLayout.sectionInset.left
        + flowLayout.sectionInset.right
        + (flowLayout.minimumInteritemSpacing * CGFloat(nbCol - 1))
    let size = Int((collectionView.bounds.width - totalSpace) / CGFloat(nbCol))

    return CGSize(width: size, height: 284)
}

Но когда я использовал CardsCollectionViewLayout в качестве моего макета collectionView, я не получил обратный вызов в вышеуказанном методе.

ИЛИ

Есть ли способ добавить эффект стековой карты с моей UICollectionViewCell.

enter image description here

Пожалуйста, помогитея.

1 Ответ

2 голосов
/ 25 июня 2019

Вы смотрите с неправильной точки зрения, если вы используете CardsCollectionViewLayout, вы должны использовать функцию, предоставляемую этим макетом, чтобы изменить его.В CardsCollectionViewLayout есть свойство itemSize, которое можно установить для определения размера карточек:

let layout = CardsCollectionViewLayout()
collectionView.collectionViewLayout = layout
layout.itemSize = CGSize(width: YOUR_WIDTH, height: YOUR_HEIGHT)
collectionView.dataSource = self
collectionView.delegate = self
collectionView.isPagingEnabled = true
collectionView.showsHorizontalScrollIndicator = false
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...