图片不适用于collectionCell

时间:2018-07-30 03:13:56

标签: swift image layout uicollectionview

在Swift 3中。我的应用程序有一个表视图和一个带有视图控制器的详细视图。在这里,我添加了一个集合视图。必须显示图像阵列。如果在纵向模式下我检查缩放器中的内容模式以进行填充,则图像可以很好地适应自己。在ladscape中,它可以在AspectFill中使用。反之亦然,布局不适合。我做了以下  在cellForItem中:

MyFunc

它不起作用。从画像到风景,我可能会有一些不一致之处。 多谢您的协助。如果要查看git中的项目: [https://github.com/ricardovaldes/tareaFinalHoteles.git 1。预先感谢。

1 个答案:

答案 0 :(得分:0)

尤里卡。最后我确实解决了这个问题。使用sizeForItem,该应用程序可以正常运行。我迷失了方向或误导了寻找改变图像内容模式的方法,但这不是正确的方法。正确的方法是旋转后调整大小:为此,您需要func willTransition toNewCollection:UITraitCollection。在内部创建一个UICollectionViewFlowLayout类型的变量布局。在条件的帮助下,可以定义旋转后的with和heigt的方式。对于那些好奇的人,本文UICollectionView Cell Resizing on Device Rotation简洁明了。 这是我在项目中执行的实现:`

override func willTransition(to newCollection: UITraitCollection, with coordinator: UIViewControllerTransitionCoordinator) {
    if UIDevice.current.orientation.isLandscape,
        let layout = myCollection.collectionViewLayout as? UICollectionViewFlowLayout{
        let with = myCollection.frame.size.width
        layout.itemSize = CGSize(width: with, height: 280)
        layout.invalidateLayout()
    }

    else if UIDevice.current.orientation.isLandscape,
        let layout = myCollection.collectionViewLayout as? UICollectionViewFlowLayout{
        let with = myCollection.frame.size.width
        layout.itemSize = CGSize(width: with/2, height: 280)