1 uiscrollview uiview ios uicollectionview swift
我有一个 UICollectionViewController 并且我添加了两个 UIView 作为子视图。一个是紫色的 UIView,上面是另一个白色的 UIView,蓝色的集合视图在两者后面向上滚动。
在这些 UIViews 下方,我collectionView.contentInset从前 300 个(这是两个 UIViews 高度的总大小)制作了。我想要完成的是滚动集合视图以及上面的两个 UIView。它几乎类似于此线程上的解决方案(在 UITableView 中滚动时移动视图),除了当我覆盖 scrollViewDidScroll 时,整个框架会向上滚动并且单元格位于两个视图后面。我想要的只是向上滚动 UIViews,然后滚动浏览集合视图。我觉得这可能涉及嵌套滚动视图。
这就是我如何覆盖 scrollViewDidScroll:
var rect = self.view.frame
rect.origin.y = -scrollView.contentOffset.y - 300
self.view.frame = rect
Run Code Online (Sandbox Code Playgroud)
编辑:我发布了一个视频,演示了我想在每个 iOS Tumblr 应用程序中执行的操作:https : //youtu.be/elfxtzoiHQo
我通过以下一些基本步骤实现了相同的要求。
//Declare the view which is going to be added as header view
let requiredView = UIView()
//Add your required view as subview of uicollectionview backgroundView view like as
collectionView.backgroundView = UIView()
collectionView.backgroundView?.addSubview(requiredView)
//After that control the frame of requiredHeaderView in scrollViewDidScroll delegate method like
func scrollViewDidScroll(scrollView: UIScrollView) {
let per:CGFloat = 60 //percentage of required view to move on while moving collection view
let deductValue = CGFloat(per / 100 * requiredView.frame.size.height)
let offset = (-(per/100)) * (scrollView.contentOffset.y)
let value = offset - deductValue
let rect = requiredView.frame
self.requiredView.frame = CGRectMake(rect.origin.x, value, rect.size.width, rect.size.height)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5139 次 |
| 最近记录: |