gpt4 book ai didi

ios - CSStickyHeaderFlowLayout 标题框架

转载 作者:技术小花猫 更新时间:2023-10-29 10:54:09 27 4
gpt4 key购买 nike

编辑: 我已经创建了一个非常小的应用程序来完美地代表问题。 https://drive.google.com/file/d/0B6sI4Feh1HJUb3pGa2pBUmY4QW8/view?usp=sharing

在示例应用程序中,我们只需向下滚动然后按下顶部栏上的按钮即可查看我遇到的问题


我正在使用 https://github.com/jamztang/CSStickyHeaderFlowLayout在我的 Collection View 中具有粘性 header 行为(如默认 UITableView)。

滚动浏览 Collection View 时效果很好。我在 collectionview 外有一个搜索栏,允许用户使用搜索文本过滤数据,每次用户输入字母时,我都会用找到的数据刷新 collectionview 的数据。

问题是假设 Collection View 中当前有 4 个部分,并且它在底部完全滚动。当我输入一个 certian 字母时,它会过滤掉除单个项目(带有单个标题)之外的所有内容。然后,内容大小会针对 Collection View 发生变化并显示正确的数据,但标题太低(请参见屏幕截图)。

我在 flowlayout 内部和 layoutAttributesForElementsInRect 内部进行了调查,我看到它实际上将框架的原点 Y 设置为 0(就像它应该的那样),但似乎 collectionview 没有使用这个值并使用前一个(当向下滚动 Collection View 时)。

知道什么会导致 UICollectionView 不使用 layoutAttributesForElementsInRect 中所需的框架吗?

See wrong header

最佳答案

我试图解决这个问题,但看起来这是不可能的,直到 UICollectionViewLayout 机制对我们来说是黑盒。自定义布局在 reloadData 上正确地将更新的框架返回给布局引擎:

enter image description here

但是隐藏引擎甚至不询问属性是否相等。在您的情况下,您可以使用简单的解决方法。只需在重新加载后更新 contentOffset。:

[self.collectionView reloadData];
self.collectionView.contentOffset = CGPointZero;

关于ios - CSStickyHeaderFlowLayout 标题框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31656903/

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