图像未绑定到UIImageView

Posted

tags:

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

我在Inspector中创建了一个UIImageView,我根据从网络上获取的所选图像在我的代码中调整大小。但是,在第一次加载图像时,它将以图像的正常分辨率显示,而不是UIImageViews新创建的边界。

调整UIImageView的大小:

fullScreenImage.bounds.size = CGSize(width: scaledWidth, height: scaledHeight)

设置UIImageView的图像

let imageStringURL = images[indexPath.row].urls!["regular"]
let imageURL = URL(string: imageStringURL!)!
let imageData = try! Data(contentsOf: imageURL)
let image = UIImage(data: imageData)
fullScreenImage.image = image

这是首次点击图像进入“全屏模式”enter image description here时的外观

这是我第二次点击它的样子

enter image description here

不确定为什么Image没有在指定的UIImageView边界内绑定自己

答案

您可以设置UIImageView的UIViewContentMode属性,而不是调整边界大小。这将调整imageView图像的大小以适应边界内。

fullScreenImage.contentMode = .scaleAspectFit

另一答案

我找到了一种解决方法。我尝试将contentMode设置为纵横比较,我也尝试在检查器中启用剪辑到边界,但是没有一个工作。所以我只是调整了UIImage本身的大小并将其放入UIImageView中。我在UIImage的另一个帖子中发现了一个扩展,它调整了它的大小

extension UIImage{
    func resizeImage(newSize: CGSize) -> UIImage {
        // Guard newSize is different
        guard self.size != newSize else { return self }

        UIGraphicsBeginImageContextWithOptions(newSize, false, 0.0);
        self.draw(in: CGRect(x: 0, y: 0, width: newSize.width, height: newSize.height))
        let newImage: UIImage = UIGraphicsGetImageFromCurrentImageContext()!
        UIGraphicsEndImageContext()
        return newImage
    }
}

如果有人知道更好的方式请告诉我:)

以上是关于图像未绑定到UIImageView的主要内容,如果未能解决你的问题,请参考以下文章

UIScrollView 与 UIImageView。图像未向上滚动

界面构建器未显示要为 UIImageView 选择的图像

UIImageView(以编程方式创建)未显示

UIImageView 图像未在 GCD 的主线程上更新

UICollectionView 中的 UIImageView 未正确绘制

如何从 UITableViewCell 中的 URL 为 UIImageView 设置图像?