如何从UICollectionView弹出一个uicollectionViewCell?

时间:2017-03-29 03:27:45

标签: ios swift uicollectionview uicollectionviewcell uicollectionviewlayout

你好我有一个简单的水平唯一的uicollectionview,我想弹出UICollectionViewCell。

enter image description here

当我点击一个白色单元格时,我会获得更大的尺寸,但仍然包含在集合视图中: - > enter image description here

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
    // handle tap events
    let cell = collectionView.cellForItem(at: indexPath) as! MyCollectionViewCell

    print("You selected cell #\(indexPath.item)!")
    Fullscreen.originalHeight = (cell.frame.height)
    Fullscreen.originalWidth = (cell.frame.width)
    Fullscreen.originalX = (cell.frame.origin.x)
    Fullscreen.originalY = (cell.frame.origin.y)

    print(Fullscreen.originalX,Fullscreen.originalY,Fullscreen.originalWidth,Fullscreen.originalHeight)

    cell.superview?.bringSubview(toFront: cell)
    cell.clipsToBounds = true
    UIView.animate(withDuration: 0.3,
                   delay: 0,
                   options: .curveEaseOut,
                   animations: {

                    //fullscreen
                    cell.frame.size.height = (collectionView.superview?.frame.height)!
                    cell.frame.size.width = (collectionView.superview?.frame.width)!
                    cell.frame.origin.x = (collectionView.superview?.frame.origin.x)!
                    cell.frame.origin.y = (collectionView.superview?.frame.origin.y)!
    },completion: nil)

正如您所看到的那样,视图会被Collectionview的尺寸切断

如何让它弹出并具有比集合视图更大的尺寸?

我可以增加collectionView的contentSize.height,但我需要水平线中的白色单元格。

由于

1 个答案:

答案 0 :(得分:1)

不清楚你真正想要实现的目标,也许你可以分享你的代码的一部分,以便我可以看到你是如何尝试实现的。

根据您的说法,您可以尝试增加contentSize.height,就​​像弹出单元格时所说的那样,并在返回白色单元之前将contentSize.height放回原来的大小。