如何从 UICollectionView 中弹出一个 uicollectionViewCell?

Posted

技术标签:

【中文标题】如何从 UICollectionView 中弹出一个 uicollectionViewCell?【英文标题】:How to pop out a uicollectionViewCell from the UICollectionView? 【发布时间】:2017-03-29 03:27:44 【问题描述】:

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

当我单击一个白色单元格时,我得到更大的尺寸,但仍包含在集合视图中:->

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】:

不太清楚你真正想要实现什么,也许你可以分享你的代码的一部分,这样我就可以看到你是如何实现的。

按照你的说法,你可以试试你在弹出单元格的时候说的增加contentSize.height,然后再把contentSize.height恢复到回到白色之前的大小。

【讨论】:

我刚刚包含了我的代码。我想跳到灰色区域

以上是关于如何从 UICollectionView 中弹出一个 uicollectionViewCell?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 glut.h 会在 CodeBlocks 中弹出一堆未定义的引用?

如何从模态视图中弹出ToRootViewController?

如何从链表中弹出?

如何从堆栈中弹出视图控制器而不导航到它们

如何在颤动中从导航器堆栈中弹出最后三个路由

如何从 Google Play 服务中弹出启用蓝牙提示?