保持动画Swift 4的循环

时间:2018-12-06 18:12:52

标签: swift animation

我正在使用Xcode 10.1,并且是Swift 4中没有经验的程序员。

我可以在没有警告或错误的情况下执行以下代码(为UICollectionView单元设置动画):

override func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {

    guard let cell = collectionView.cellForItem(at: indexPath) as? CompanyCollectionViewCell else { return }

    UIView.animate(withDuration: 0.1, delay: 0, options: [.curveEaseOut], animations: {
        cell.transform = CGAffineTransform(scaleX: 0.8, y: 0.8)
    }) { (finished) in
        UIView.animate(withDuration: 0.08, delay: 0, options: [.curveEaseIn], animations: {
            cell.transform = CGAffineTransform(scaleX: 1.0, y: 1.0)
        }, completion: { (finished) in
            DispatchQueue.main.async {
                self.performSegue(withIdentifier: "showTradeView", sender: self)
            }
        })
    }
}

...但是我担心动画闭包内的保留周期。

我是否需要在最后一个“完成:”闭包中使用[无主的自我]? 我需要在第一个动画闭包中使用[unown cell]吗?

最后(有点不相关,对不起),我是否必须在DispatchQueue.main内调用performSegue代码,因为没有它似乎很高兴吗?

非常感谢您的帮助。

0 个答案:

没有答案