Swift2 Swift 2集合视图扩展,用于水平滚动至垂直
我的收藏视图有一个扩展,可以进行水平滚动,但我想在垂直滚动上更改它Swift2 Swift 2集合视图扩展,用于水平滚动至垂直,swift2,uicollectionview,uicollectionviewlayout,uiscrollviewdelegate,Swift2,Uicollectionview,Uicollectionviewlayout,Uiscrollviewdelegate,我的收藏视图有一个扩展,可以进行水平滚动,但我想在垂直滚动上更改它 extension viewRe : UIScrollViewDelegate { func scrollViewWillEndDragging(scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) { let layou
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
}
}
扩展视图:UIScrollViewDelegate
{
func ScrollViewWillendDraging(scrollView:UIScrollView,withVelocity:CGPoint,targetContentOffset:UnsafemeutablePointer)
{
让layout=self.recipesCollView?.collectionViewLayout为!UICollectionViewFlowLayout
让cellWidthIncludingSpacing=layout.itemSize.width+layout.minimumLineSpacing
var offset=targetContentOffset.memory
let index=(offset.x+scrollView.contentInset.left)/cellWidthIncludingSpacing
设roundedIndex=四舍五入(索引)
偏移量=CGPoint(x:roundedIndex*单元格宽度,包括间距-scrollView.contentInset.left,y:-scrollView.contentInset.top)
targetContentOffset.memory=偏移量
}
}
通过这个扩展,我试图使单元格即使在他滚动时也保持在视图的顶部,因为分页已启用。因此,每当用户滚动时,我希望单元格贴在顶部,当用户滚动时,依此类推。@donnyWals是正确的。如果您使用的是
UICollectionView
,只需更改其UICollectionViewFlowLayout
let layout = UICollectionViewFlowLayout()
layout.scrollDirection = . Horizontal
let collectionView = UICollectionView(frame: frame, collectionViewLayout: layout)
或者如果您有一个现存的UICollectionView
if let layout = collectionView.collectionViewLayout as? UICollectionViewFlowLayout {
layout.scrollDirection = .Horizontal
}
遵循官方API:
唐尼瓦尔是对的。如果您使用的是
UICollectionView
,只需更改其UICollectionViewFlowLayout
let layout = UICollectionViewFlowLayout()
layout.scrollDirection = . Horizontal
let collectionView = UICollectionView(frame: frame, collectionViewLayout: layout)
或者如果您有一个现存的UICollectionView
if let layout = collectionView.collectionViewLayout as? UICollectionViewFlowLayout {
layout.scrollDirection = .Horizontal
}
遵循官方API:
您是否尝试过设置收藏视图的滚动方向?不确定为什么要实现扩展。@donnywals是的,滚动已启用,分页也已启用,但是否设置了滚动方向?由于您正在尝试从水平滚动转换为垂直滚动,您可能希望将
滚动方向设置为。垂直您更新了问题,但我不确定您现在问的是什么。。您想将集合视图的滚动方向从水平方向转换为垂直方向,并且您的扩展应该使单元格粘在顶部?到目前为止你试过什么?如果你让它水平运行,那么垂直方向不意味着你应该将x和左侧部分更改为y和顶部吗?@donnywals是的,我试过了,但仍然不起作用。你试过设置集合视图的滚动方向吗?不确定为什么要实现扩展。@donnywals是的,滚动已启用,分页也已启用,但是否设置了滚动方向?由于您正在尝试从水平滚动转换为垂直滚动,您可能希望将滚动方向设置为。垂直您更新了问题,但我不确定您现在问的是什么。。您想将集合视图的滚动方向从水平方向转换为垂直方向,并且您的扩展应该使单元格粘在顶部?到目前为止你试过什么?如果你让它水平运行,那么垂直方向不意味着你应该将x和左侧部分更改为y和顶部吗?@donnywals是的,我试过了,但仍然不起作用。我更新了我的问题,因为我第一次不清楚。对不起,我更新了我的问题,因为我第一次不清楚。很抱歉