Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 图像不是';t绑定到UIImageView_Ios_Swift_Uiimageview_Uiimage - Fatal编程技术网

Ios 图像不是';t绑定到UIImageView

Ios 图像不是';t绑定到UIImageView,ios,swift,uiimageview,uiimage,Ios,Swift,Uiimageview,Uiimage,我在Inspector中创建了一个UIImageView,我根据从web获取的选定图像在代码中调整其大小。但是,在第一次加载图像时,它将以图像的正常分辨率显示,而不是以新创建的UIImageView边界显示 调整UIImageView的大小: fullScreenImage.bounds.size = CGSize(width: scaledWidth, height: scaledHeight) 设置UIImageView的图像 let imageStringURL = images[ind

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

调整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
这是第一次单击图像进入“全屏模式”时的外观

这是我第二次单击它时的外观


不确定图像为什么没有在指定的UIImageView边界内绑定自身,您可以设置UIImageView的UIViewContentMode属性,而不是调整绑定的大小。这将调整imageView图像的大小,使其适合边界


fullScreenImage.contentMode=.scaleAspectFit

我找到了一个解决方案。我尝试将contentMode设置为aspect fit,还尝试在inspector中启用“剪辑到边界”,但都不起作用。因此,我只是简单地考虑调整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
    }
}

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

只是尝试了一下,似乎没有解决它。问题是我从一个API在线获取这些图像,有很多图像具有不同的纵横比。我必须在显示图像时保持图像的原始纵横比,因此我必须使图像适合更改后的UIImageView。我还更改了设备方向,需要更新UIImageView以考虑纵横比