【发布时间】:2021-02-08 13:44:32
【问题描述】:
每当我点击带有zoom 效果的collection view cell 时,我都会尝试呈现一个视图控制器。
据我所知,Hero 框架使用 HeroID 工作,您在 fromView 和 toView 中设置相同的 id,框架为您完成了艰苦的工作。
我是这样设置的:
在viewcontroller1:
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
let cell = collectionView.cellForItem(at: indexPath) as! CollectionViewCell
cell.heroID = "profheroid"
let viewcontroller2 = ViewController2()
viewcontroller2.configureController(with: arrayOfModels[indexPath.item])
viewcontroller2.heroModalAnimationType = .zoom
viewcontroller2.modalPresentationStyle = .fullScreen
self.navigationController?.present(viewcontroller2, animated: true, completion: nil)
}
在viewcontroller2:
override func viewDidLoad() {
super.viewDidLoad()
view.heroID = "profheroid"
}
每当我点击collectionviewCell 时,就会出现问题,演示正确发生,但我看到同时出现了这么多单元格。
我认为这是因为cell.heroID = "profheroid" 同时应用于更多单元格。
如何确保当单元格显示时 heroID 仅在cell 被点击和视图控制器的视图中??
【问题讨论】:
标签: swift uicollectionview uicollectionviewcell viewcontroller