图像未绑定到UIImageView

时间:2018-08-31 00:40:14

标签: ios swift uiimageview uiimage

我在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范围内限制自身

2 个答案:

答案 0 :(得分:0)

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

fullScreenImage.contentMode = .scaleAspectFit

答案 1 :(得分:0)

我找到了一种解决方法。我尝试将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
    }
}

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