来自 URL 的图像不遵循故事板中的样式规则

Posted

技术标签:

【中文标题】来自 URL 的图像不遵循故事板中的样式规则【英文标题】:Image from URL doesn't follow the styling rules from storyboard 【发布时间】:2017-04-18 20:12:11 【问题描述】:

所以我试图将图像从 URL 显示到图像中(通过 IBOutlet 连接)。但是,图像确实显示但不遵循故事板中设置的样式规则。如:Aspect Fill。这会导致图像与模拟器中的所有内容重叠。

代码:

let url = URL(string: "http://www.wsvh.nl/wp-content/uploads/bekergoud.jpg")

    DispatchQueue.global().async 
        let data = try? Data(contentsOf: url!) //make sure your image in this url does exist, otherwise unwrap in a if let check / try-catch
        DispatchQueue.main.async 
            self.nieuwsFeaturedImage.image = UIImage(data: data!)
        
    

结果:

您可以看到图片与标题和描述重叠。

我该如何解决这个问题?

【问题讨论】:

试试[UIImage imageWithData:data scale:[UIScreen mainScreen].scale] 【参考方案1】:

如果您设置了方面填充,您还需要设置nieuwsFeaturedImage.clipsToBounds = true 或在Interface Builder 中选中Clips to Bounds 框。

没有它,您的图像会根据比例缩放,因此它会扩展到您指定的内容区域之外。您将需要截断所有额外的内容 - Clips to Bounds 就是为了这个。

【讨论】:

这种解决方案在极少数情况下不起作用。在这种情况下,您需要在代码中使用 [UIImage imageWithData:data scale:[UIScreen mainScreen].scale] 以对图像应用正确的比例。IE:即使启用 ClipToBounds,@2x 图像也会对我执行此操作。

以上是关于来自 URL 的图像不遵循故事板中的样式规则的主要内容,如果未能解决你的问题,请参考以下文章

尽管匹配宽度/高度约束,但启动屏幕故事板中的图像不可见

调整图像大小以适合 xcode 故事板中的 Ui 图像视图

在框架中覆盖故事板中的图像

未反映在本地化故事板中的基本故事板更改

故事板中静态样式单元格的替代方法是啥?

在 tableview 控制器故事板中添加标签栏