gpt4 book ai didi

ios - 如何快速更改 Collection View 的高度

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

我在 ui View 上有一个 Collection View 和一个文本字段。最初,我在 ui View 的顶部有一个文本字段,然后我将 Collection View 顶部 anchor 约束设置到文本字段的底部。

我想实现一种行为,如果我向下滚动 Collection View ,文本字段应该消失并且 Collection View 的顶部应该位于同一 ui View 的顶部(这会隐藏文本字段)。当我向上滚动时,我希望约束与初始约束一样(容器 View 的顶部 anchor 应设置为文本字段的底部)。关于如何实现此行为的任何提示?我希望通过在向上滚动和向下滚动发生时更新约束来实现这一点。我该如何实现?

最佳答案

UICollectionViewUIScrollView 的子类,因此您可以实现一个 UIScrollViewDelegate 来获取滚动事件。

这是我在我的一个应用程序中使用的一些代码

  • 文本字段的底部被限制在 Collection View 的顶部
  • 文本字段的顶部被约束到 View 的顶部布局指南 - 这是由 ScrollView 委托(delegate)代码修改的约束
  • 随着 Collection View 向上滚动,文本字段将向上移动并淡出

extension ViewController: UIScrollViewDelegate {
func scrollViewDidScroll(_ scrollView: UIScrollView) {

let textHeight = self.textField.frame.size.height + 2
let offset = min(scrollView.contentOffset.y, textHeight)

if offset >= 0 || self.textFieldConstraint.constant != 0 {
self.textFieldConstraint.constant = -offset
let percent = max(1 - offset/textHeight,0)
self.textField.alpha = percent
}
}
}

本质上,您将文本字段“推”出屏幕顶部,不超过其高度+2

关于ios - 如何快速更改 Collection View 的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47214054/

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