UICollectionView不允许完全滚动---最后几行被切断

时间:2014-12-15 20:45:01

标签: ios xcode swift uicollectionview

我有一个UICollectionView,可以容纳一堆照片。

但是,如果我滚动到底部,则滚动视图不会让我滚动到最后几行的底部(它会快速向后移动)。我已经尝试覆盖collectionView.contentSize并只添加1000到高度,但它没有解决问题。

collectionView.contentSize = CGSizeMake(collectionView.contentSize.width,collectionView.contentSize.height + 1000)

以下是该问题的视频: https://www.youtube.com/watch?v=fH57_pL0OjQ&list=UUIctdpq1Pzujc0u0ixMSeVw

以下是我创建单元格的代码:

    func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell
        {
            var cell = collectionView.dequeueReusableCellWithReuseIdentifier("selectPhotoCell", forIndexPath: indexPath) as B_SelectPhotoControllerViewCell
            let reuseCount = ++cell.reuseCount
            let asset = currentAssetAtIndex(indexPath.item)
            PHImageManager.defaultManager().requestImageForAsset(asset, targetSize:_cellSize, contentMode: .AspectFit, options: nil)//the target size here can be set to CGZero for a super blurry preview
            {
                result, info in
                if reuseCount == cell.reuseCount
                {
                    cell.imageView.image = result
                    cell.imageView.frame = CGRectMake(0, 0,self._cellSize.width,self._cellSize.height)
                }
            }
            return cell
        }


private func currentAssetAtIndex(index:NSInteger)->PHAsset
    {
        if let fetchResult = _assetsFetchResults
        {
            return fetchResult[index] as PHAsset
        }else
        {
            return _selectedAssets[index]
        }
    }

更新

因为我将其添加为子视图控制器,所以滚动视图的偏移似乎存在一些问题。我还没有修复它但是当打开这个视图而不将它作为子视图添加到另一个视图控制器时,scrollview的大小正确

2 个答案:

答案 0 :(得分:0)

问题是我将其添加为子视图控制器。

因此,在做了一些动画之后,UICollectionView边界正在调整它附加到的视图。结果它的高度是错误的,因此它被切断了。

答案 1 :(得分:0)

我刚从一个快速的Google遇到了这个问题,觉得我可以添加一些有用的东西。

我正在运行带有UIView的segmentedControl,该UIView在段更改时更改为不同的UICollectionViews,而我无法使collectionView向下完全滚动。

这可能不是所有解决方案,但我发现如果我去XIB,我正在视图中加载,并将大小设置为自由格式,并以单元格的大小减小它的大小,这已经解决了这个问题。