Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift2 Swift 2集合视图扩展,用于水平滚动至垂直_Swift2_Uicollectionview_Uicollectionviewlayout_Uiscrollviewdelegate - Fatal编程技术网

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是的,我试过了,但仍然不起作用。我更新了我的问题,因为我第一次不清楚。对不起,我更新了我的问题,因为我第一次不清楚。很抱歉