繁体   English   中英

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

[英]Dynamically set collection view cell size on different devices

我正在尝试使用集合视图实现水平滑动,该视图应在每次滑动时居中放置图像视图

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

但是,当我更换设备时,像元大小不成比例

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

谢谢

我的建议:不要。 您所描述的更像是UIPageViewController而不是集合视图。 使用UIPageViewController,您所描述的内容微不足道-实际上是自动发生的。

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

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

尽管我同意马特的回答。 但是您也可以使用此代码来实现。 您无需创建扩展程序。 您只需要重写此集合视图委托方法

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

这将使您可以根据要求动态更改布局(在每种情况下,每个设备的大小都不同)。 特别是, 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)
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM