Можно ли изменить размер ячейки при нажатии на размер экрана? - PullRequest
0 голосов
/ 08 марта 2020

Можно ли изменить размер ячейки при нажатии на размер экрана

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
    switch collectionView.indexPathsForSelectedItems?.first {
        case .some(indexPath):
            return CGSize() // your selected height
        default:
            let height = (view.frame.width) * 9 / 16
            return CGSize(width: view.frame.width, height: height + 50 + 50)
    }
}

1 Ответ

0 голосов
/ 08 марта 2020

Попробуйте это:

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {

    let items = collectionView.indexPathsForSelectedItems
    let width = view.frame.width

    if (items?.contains(indexPath))! {
        return CGSize(width: width, height: 50) //example: your selected height = 50
    } else {
        let height = width * 9 / 16
        return CGSize(width: width, height: height + 50 + 50)
    }
}

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
    collectionView.collectionViewLayout.invalidateLayout()
}

func collectionView(_ collectionView: UICollectionView, didDeselectItemAt indexPath: IndexPath) {
    collectionView.collectionViewLayout.invalidateLayout()
}

Если вы хотите множественный выбор, вам нужно написать этот код, чтобы включить множественный выбор где-то вроде viewDidLoad ()

collectionView?.allowsMultipleSelection = true

Я надеюсь, что это будет полезно для вас.

...