编辑:我创建了一个非常小的应用程序,完美地代表了问题。 https://drive.google.com/file/d/0B6sI4Feh1HJUb3pGa2pBUmY4QW8/view?usp=sharing
在示例应用中,我们只需向下滚动,然后按顶部栏上的按钮即可查看我遇到的问题
我正在使用https://github.com/jamztang/CSStickyHeaderFlowLayout在我的集合视图中拥有粘性标头行为(如默认的UITableView)。
滚动浏览集合视图时效果非常好。我在collectionview外面有一个搜索栏,允许用户使用搜索文本过滤数据,每次用户输入一封信,我都会使用找到的数据刷新收集视图的数据。
问题是我们说集合视图中当前有4个部分,并且它在底部完全滚动。当我输入一个certian字母时,它会过滤除一个项目之外的所有内容(带有一个标题)。然后,内容大小会针对集合视图进行更改并显示正确的数据,但标题太低(请参见屏幕截图)。
我已在flowlayout内部和layoutAttributesForElementsInRect
内部进行了调查,我发现它实际上将框架的原点Y设置为0(就像它应该的那样),但看起来这个集合视图并没有使用此值并使用前一个值(当集合视图向下滚动时)。
知道什么可能导致UICollectionView
在layoutAttributesForElementsInRect
内没有使用所需的框架?