在不同设备上动态设置集合视图单元大小

时间:2017-01-03 18:19:45

标签: ios swift uicollectionview swift3

我正在尝试使用集合视图实现水平滑动,该视图应该在每次滑动时都有一个图像视图

我可以通过手动将单元格高度+宽度设置为设备大小来在一个设备尺寸上执行此操作

然而,当我更换设备时,单元格大小不成比例

如何保持每个设备更改的单元格大小?我希望单元格占据宽度和高度的100%

谢谢

3 个答案:

答案 0 :(得分:2)

我的建议:不要。你所描述的更像是UIPageViewController而不是集合视图。使用UIPageViewController,您所描述的内容非常简单 - 它实际上是自动发生的。

答案 1 :(得分:2)

   func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize
{

        return CGSizeMake(self.view.frame.size.width) , (self.view.frame.size.height))
}
  

虽然我同意马特的回答。但是你也可以用这个代码来做。   你不需要创建扩展。你只需要覆盖这个集合视图委托方法

答案 2 :(得分:1)

为集合视图创建自定义流布局,并将委托分配给视图控制器。

这将允许您根据要求动态更改布局(在您的情况下,每个设备的大小不同)。具体来说,collectionView(UICollectionView, layout: UICollectionViewLayout, sizeForItemAt: IndexPath)方法允许您更改每个项目的单元格大小。它看起来像这样:

extension ViewController : UICollectionViewDelegateFlowLayout {
    func collectionView(UICollectionView, layout: UICollectionViewLayout, sizeForItemAt: IndexPath) -> CGSize {
        return CGSize(width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height)
    }
}