Я использую 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)
}
})
}
}
... но меня беспокоит сохранение циклов внутри замыканий анимации.
Нужно ли использовать [unowned self] в последнем замыкании 'завершение:'?Нужно ли использовать [неизвестную ячейку] при первом закрытии анимации?
и, наконец (немного не связано, извините). Нужно ли вызывать код executeSegue внутри DispatchQueue.main, так как кажется, что он очень рад работать безэто?
Любая помощь очень ценится.