当用户滑动时,我正在更新屏幕上的图像。因为这张图片来自网络,我实现了对UIImageview的扩展。
然而,当我加载新图像时,我为故事板中的图像设置的宽高比会丢失。
这是我用于UIImageView的扩展程序:
extension UIImageView {
public func imageFromUrl(urlString: String) {
if let url = NSURL(string: urlString) {
let request = NSMutableURLRequest(URL: url)
request.setValue("<YOUR_HEADER_VALUE>", forHTTPHeaderField: "<YOUR_HEADER_KEY>")
NSURLSession.sharedSession().dataTaskWithRequest(request) {
(data, response, error) in
guard let data = data where error == nil else{
NSLog("Image download error: \(error)")
return
}
if let httpResponse = response as? NSHTTPURLResponse{
if httpResponse.statusCode > 400 {
let errorMsg = NSString(data: data, encoding: NSUTF8StringEncoding)
NSLog("Image download error, statusCode: \(httpResponse.statusCode), error: \(errorMsg!)")
return
}
}
dispatch_async(dispatch_get_main_queue(), {
NSLog("Image download success")
self.image = UIImage(data: data)
})
}.resume()
}
}
}
然后我用这段代码以编程方式更改UIImageView:
frontviewimage.imageFromUrl("https://upload.wikimedia.org/wikipedia/commons/6/66/Android_robot.png")
然后我尝试将内容模式更改为适合(下方),但似乎没有任何影响。
frontviewimage.contentMode = UIViewContentMode.ScaleAspectFit;
frontviewimage.imageFromUrl(frontImageViewArray[cardStackPosition])
编辑:我也尝试过:
frontviewimage.imageFromUrl(frontImageViewArray[cardStackPosition])
frontviewimage.contentMode = UIViewContentMode.ScaleAspectFit;
frontviewimage.clipsToBounds = true
以下是它应该是什么样子的示例:
但是在某些图片上会发生什么,它根本不会修改尺寸,图片最终将整个屏幕覆盖所有按钮:
我希望看到图像视图中的任何内容,但不知道如何做到这一点。