Swift-使用UIImage动画显示/关闭ViewController

问题描述 投票:0回答:1

推/放开ViewController时,我想制作动画。

向您展示我的意思的最好方法是查看N26:Animation

在我的情况下,我有一个CollectionView,用户可以单击cell转到下一个我用ViewController处理的tapCallback

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {

    // if indexPath.item is less than data count, return a "Content" cell
    if indexPath.item < dataSourceArray.count {
        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "ContentCell", for: indexPath) as! ContentCell
        // set cell label
        cell.cellLabel.text = dataSourceArray[indexPath.item].name
        // set cell image
        cell.wishlistImage.image = dataSourceArray[indexPath.item].image
        if cell.wishlistImage.image == images[2] || cell.wishlistImage.image == images[3] {
            cell.priceLabel.textColor = .gray
            cell.priceEuroLabel.textColor = .gray
            cell.wishCounterLabel.textColor = .gray
            cell.wünscheLabel.textColor = .gray
        }
        // set background color
        cell.imageView.backgroundColor = dataSourceArray[indexPath.item].color
        cell.wishCounterView.backgroundColor = dataSourceArray[indexPath.item].color
        cell.priceView.backgroundColor = dataSourceArray[indexPath.item].color


        cell.customWishlistTapCallback = {

            // track selected index
            self.currentWishListIDX = indexPath.item

            let vc = self.storyboard?.instantiateViewController(withIdentifier: "WishlistVC") as! WishlistViewController

            vc.wishList = self.dataSourceArray[self.currentWishListIDX]

            vc.theTableView.tableView.reloadData()
            self.present(vc, animated: true, completion: nil)

        }

        return cell
    }

要关闭ViewController,用户只需轻按button

@objc private func dismissView(){
    self.dismiss(animated: true, completion: nil)
}

这是我的CollectionView和我提交/解散的ViewController的屏幕截图:

enter image description here enter image description here

[就像我说过的,我想拥有与视频完全相同的动画(也可以“拖动” ViewController,但这可能是另一个问题?)。

如果您不清楚,请随时提问。

我尝试搜索,但是我什么都找不到,所以我很感谢您的帮助:)

ios swift animation uicollectionview uiimageview
1个回答
2
投票

[有一个很好的库可以执行此功能,称为Hero

如果您想进行自己的实现,则需要使用自己的UIViewControllerTransitioningDelegate

© www.soinside.com 2019 - 2024. All rights reserved.