【发布时间】:2016-08-11 08:22:01
【问题描述】:
我的收藏视图有这个扩展,它可以进行水平滚动,但我想在垂直滚动时更改它??
extension viewRe : UIScrollViewDelegate
{
func scrollViewWillEndDragging(scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>)
{
let layout = self.recipesCollView?.collectionViewLayout as! UICollectionViewFlowLayout
let cellWidthIncludingSpacing = layout.itemSize.width + layout.minimumLineSpacing
var offset = targetContentOffset.memory
let index = (offset.x + scrollView.contentInset.left) / cellWidthIncludingSpacing
let roundedIndex = round(index)
offset = CGPoint(x: roundedIndex * cellWidthIncludingSpacing - scrollView.contentInset.left, y: -scrollView.contentInset.top)
targetContentOffset.memory = offset
}
}
有了这个扩展,我试图让单元格保持在视图的顶部,即使他滚动,因为启用了分页。因此,每当用户滚动时,我希望单元格在用户滚动时粘在顶部等等。
【问题讨论】:
-
你试过设置集合视图的滚动方向吗?不知道你为什么要实际实施扩展。
-
@donnywals 是的,启用了滚动和分页
-
但是你设置滚动方向了吗?由于您尝试从水平滚动转换为垂直滚动,您可能希望将
scrollDirection设置为.Vertical -
您更新了问题,但我不确定您现在在问什么。您希望将集合视图的滚动方向从水平转换为垂直,并且您的扩展应该使单元格粘住到顶部?你试过什么了?如果你让它水平工作不会垂直意味着你应该将 x 和 left 部分更改为 y 和 top?
-
@donnywals 是的,我已经尝试过了,但还是不行
标签: swift2 uicollectionview uicollectionviewlayout uiscrollviewdelegate