gpt4 book ai didi

swift - 如何使用自动布局 anchor 对 UICollectionView 进行动画处理?

转载 作者:行者123 更新时间:2023-11-30 11:16:58 25 4
gpt4 key购买 nike

我正在尝试使用布局约束来为 CollectionView 制作动画,但是我无法让它工作。我有一个占据整个屏幕的 Collection View ,在点击按钮时,我想基本上向上移动 Collection View ,以便为另一个 View 从底部进入腾出空间 - 参见下面的图片

传入的 UIView 动画效果很好( View 从底部升起) - 我想移动 CollectionView 的原因是传入的 UIView 遮挡了 Collection View,所以我只是尝试同时向上移动 CollectionView新 View ,以便可以显示 CollectionView 中的所有内容,而不会被新 View 隐藏 - 我使用引用 View 来获取 CollectionView 最终位置的正确布局约束 Image to show what I am trying to achieve我以正确的方式处理这件事吗?

下面的代码示例没有任何反应,我不知道从这里开始哪里 - 相同的方法用于对传入 View 进行动画处理并且工作得很好,但似乎不适用于 CollectionView...

如有任何帮助,我们将不胜感激

 var colViewBottomToReferenceTop: NSLayoutConstraint?
var colViewBottomToViewBottom: NSLayoutConstraint?

override func viewDidLoad() {
super.viewDidLoad()

colViewBottomToReferenceTop = musicCollectionView.bottomAnchor.constraint(equalTo: referenceView.topAnchor)
colViewBottomToViewBottom = musicCollectionView.bottomAnchor.constraint(equalTo: view.bottomAnchor)

NSLayoutConstraint.active([colViewBottomToViewBottom!])
NSLayoutConstraint.deactivate([colViewBottomToReferenceTop!])

}

func playerShow() {
NSLayoutConstraint.activate([colViewBottomToReferenceTop!])
UIView.animate(withDuration: 0.5, animations: {
self.view.layoutIfNeeded()
})
}


@IBAction func btnTapped(_ sender: UIButton) {
playerShow()
}

最佳答案

您想在动画之前停用另一个

NSLayoutConstraint.deactivate([colViewBottomToViewBottom!]) 
NSLayoutConstraint.activate([colViewBottomToReferenceTop!])

看看这个Demo

关于swift - 如何使用自动布局 anchor 对 UICollectionView 进行动画处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51651712/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com