iOS图片查看器或使用集合视图(启用分页)以最小的行距精确预览像照片应用一样的照片

时间:2018-07-14 07:21:00

标签: ios swift uicollectionview

我正在尝试开发与iOS照片应用类似的预览。如果我们从照片应用中选择任何图像,则它将以全屏显示(imageviewaspect fit一起显示)。现在,如果我们滑动手指,则将显示下一个单元格,同时我们可以看到随后单元格之间的行距。我只想要使用集合视图那样的确切效果。我不想使用任何库。就我而言,发生的事情是,当我滚动到下一页时,在左侧发现了行距,如下面的屏幕截图所示。

我尝试了许多解决方案,例如从index path手动滚动到特定的scrollview delegate methods,但是行为并不顺利。

我得到的效果如下,

enter image description here enter image description here enter image description here

因此,当我离开手指图像时,应该设置edge to edge

我当前的代码是

在viewdidload中,

    let layout = UICollectionViewFlowLayout()
    layout.minimumInteritemSpacing = 0.0
    layout.minimumLineSpacing = 20.0
    layout.itemSize = UIScreen.main.bounds.size
    layout.scrollDirection = UICollectionViewScrollDirection.horizontal

    collectionView.collectionViewLayout = layout
    collectionView.delegate = self
    collectionView.dataSource = self
    collectionView.showsVerticalScrollIndicator = false
    collectionView.showsHorizontalScrollIndicator = false
    collectionView.isPagingEnabled = true

并且我已经为集合视图实现了必要的datasource methods

简而言之,我希望edge to edge scrollingpaging effectminimum line space of 20中的单元格之间具有collectionview。而已!谢谢!

1 个答案:

答案 0 :(得分:1)

哦,太简单了!

我通过以下技巧找到了解决方法

我将集合视图的宽度增加了20像素,然后将其增加了屏幕宽度。因此,我的集合视图的主要要素常量为-10,尾随约束也为-10,并且我将sectionInset的{​​{1}}的{​​{1}}设置为{ {1}}。

所以我的情节提要设置就像

enter image description here

我对flowlayout的设置就像

collectionview

就是这样!