将集合视图滚动到顶部

Posted

技术标签:

【中文标题】将集合视图滚动到顶部【英文标题】:Scroll Collection view to the top 【发布时间】:2017-10-01 09:32:01 【问题描述】:

我有一个以下集合视图。当用户向上滚动视图时,我希望集合视图一直向上。同样,当它向下滚动时,我希望它回到原来的位置。

我在collectionview 上方有一个uiview 和imageView。

现在,如果这是一个表格视图,我会使用标题。我如何实现这种行为。我没有想法。

提前致谢

【问题讨论】:

【参考方案1】:

UICollectionViewUIScrollView 的子类,所以你可以通过滚动视图delegate 方法和你的UIViewUIImageView 对UICollectionView 的约束来实现你想要的。

这里我将给你举一个例子来实现这一点。

func scrollViewDidScroll(_ scrollView: UIScrollView) 
        if scrollView == collectionView
            if scrollView.contentOffset.y == 0
                UIView.animate(withDuration: 0.5)  () -> Void in
                    self.constTopTagHeight.constant = 175 // Your UIView and imageview constraints adjust.  
                    self.view.layoutIfNeeded()
                
            
            else
                UIView.animate(withDuration: 0.5)  () -> Void in
                    self.constTopTagHeight.constant = 0 // Your UIView and imageview constraints adjust.
                    self.view.layoutIfNeeded()
                
            
        
    

希望对您有所帮助。

【讨论】:

感谢您的回答。澄清一下,constTopTagHeight 是我在顶部的观点。对?如果我将它应用于滚动视图,它只会缩小我的顶视图,而不是将 collectionView 一直滚动到顶部。我做错了吗? 是的 constTopTagHeight 是顶视图高度约束。你只需要在上面的 scrollview delagate 方法中管理它。

以上是关于将集合视图滚动到顶部的主要内容,如果未能解决你的问题,请参考以下文章

滚动视图不滚动到顶部

UIScrollView + 在滚动屏幕之前将项目固定到顶部

滚动到顶部时在表格视图的开头动态添加行

以编程方式滚动到顶部不起作用?

以编程方式滚动到顶部不起作用?

在顶部添加新项目后,回收器视图未滚动到顶部,因为尚未发生对列表适配器的更改