gpt4 book ai didi

ios - CollectionView 在动画过程中切断单元格

转载 作者:行者123 更新时间:2023-11-28 07:29:34 24 4
gpt4 key购买 nike

所以我有一个 collectionView,它锚定到我的 viewController 中的另一个 subview 。橙色 subview 锚定在导航栏的底部,并且它的高度和 alpha 值被动画化。

当其动画时,collecitonView 在动画期间向下移动。虽然,正如您将看到的,一些较低的单元格在动画之前消失了,使它看起来不平滑和参差不齐。

enter image description here

这是设置 viewController 的 subview 的函数:

private func setupSubviews() {
view.addSubview(newMessageView)
NSLayoutConstraint.activate([
newMessageView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor),
newMessageView.leadingAnchor.constraint(equalTo: view.leadingAnchor),
newMessageView.trailingAnchor.constraint(equalTo: view.trailingAnchor)
])
newMessageView.heightConstraint = newMessageView.heightAnchor.constraint(equalToConstant: 0)
newMessageView.heightConstraint?.isActive = true


view.addSubview(messagesCollectionView)
messagesCollectionView.anchor(top: newMessageView.bottomAnchor, leading: view.leadingAnchor, bottom: view.bottomAnchor, trailing: view.trailingAnchor)
}

这是被调用的函数:

@objc func newMessage() {

toggleHeader = !toggleHeader

UIView.animate(withDuration: 1.0, delay: 0, usingSpringWithDamping: 1, initialSpringVelocity: 1, options: .curveEaseInOut, animations: {

if (self.toggleHeader) {
self.newMessageView.heightConstraint?.constant = 200
} else {
self.newMessageView.heightConstraint?.constant = 0
}

self.view.layoutIfNeeded()
})

我只是更改了我施加的 heightConstraint。我相信它与 didEndDisplaying 函数有关,该函数检测到单元格将不可见并将其切断。

我将如何改变或改进它?或者有没有办法阻止 collectionView 移除未显示的单元格?

谢谢

最佳答案

没关系。修复。

将 collectionView 的底部 anchor 更改为 view.safeAreaLayoutGuide.bottomAnchor。

关于ios - CollectionView 在动画过程中切断单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55289418/

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