图像不适合收集Cell

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图像不适合收集Cell相关的知识,希望对你有一定的参考价值。

在Swift 3.我的应用程序有一个表视图和一个详细视图与视图控制器。我在这里添加了一个集合视图。必须呈现一系列图像。如果在肖像中我检查缩放器中的内容模式以填充,则图像会很好地适应自己。在ladscape中,它适用于aspectFill。反之亦然,布局不合适。我在cellForItem中执行了以下操作:

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    let cell = myCollection.dequeueReusableCell(withReuseIdentifier: "cellCollection", for: indexPath) as! CollectionViewCell
    cell.cellImage.image = UIImage(named: array[indexPath.item])

    if UIDevice.current.orientation.isLandscape{
        cell.cellImage.contentMode = .scaleAspectFill
    }
    else if UIDevice.current.orientation.isPortrait{
        cell.cellImage.contentMode = .scaleToFill
    }

    return cell
}

这是行不通的。可能是我从纵向到横向都有一些不一致的地方。我很感激你的帮助。如果你想看看git中的项目:[https://github.com/ricardovaldes/tareaFinalHoteles.git1。提前致谢。

答案

尤里卡。最后我确实解决了这个问题。使用sizeForItem,应用程序可以正常运行。我迷失或误导寻找改变图像内容模式的方法,但这不是正确的方法。旋转后调整大小的正确方法是:为此需要func willTransition toNewCollection:UITraitCollection。在里面创建一个UICollectionViewFlowLayout类型的变量布局。在有条件的帮助下,可以定义你想要旋转后的加法和加法。这篇文章对于那些好奇的人来说简洁明了: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)

以上是关于图像不适合收集Cell的主要内容,如果未能解决你的问题,请参考以下文章

图像不适合自定义表格视图单元格中的图像视图

Swift UI集合视图 - 如何在Cell中显示“segued”用户输入?

UIImageView 上的方面适合在 UITableView 单元格中留下大量空白

Microsoft SQL Server 代码片段收集

超级有用的9个PHP代码片段

cell.imageView 不显示图像