mat*_*att 18 asset-catalog xcode9
我认为Xcode 9资产目录中新的Preserves Vector Data复选标记最终会让我们调整矢量PDF图像的大小,但显然不是.这是我在预览中的两个缩放比例中看到的测试图像:
漂亮而锐利,有很多变焦,很明显这是一个矢量图像.但这是我的应用程序中两个图像视图的样子:
那么我的矢量数据在哪里?这个非常理想的功能在行动中是否仍然缺失?它是否仍然只适用于自动生成的2x和3x图像?如果是这样,Preserve Vector Data复选框为我们提供了什么,我们还没有?
Gui*_*gis 14
编辑:在Xcode 9 GM(9A235)中仍然存在相同的错误行为
截至今天(Xcode 9 beta 6 9M214v),如果UIImageView至少有3个与间距相关的约束,图像将只能正确渲染(非模糊).
例如.间距为左,间距为右,间距为顶部,另一个约束定义UIImageView高度.
另请注意,完全禁用自动布局会使所有UIImageView呈现错误.
我填写了rdar:// 34306192(http://www.openradar.me/radar?id=4968083747766272)这个错误.
新版本我多次遇到同样的问题Preserves Vector Data。
超级简单的解决方案对我来说非常有效:
UIImageView image在Interface Builder中设置该属性,只需将其留空即可。image编程方式设置该值。希望能帮助到你。
它有效,但是仅当您自己执行调整大小时:
这是通过代码实现的,如下所示:
let im = UIImage(named:"Image")!
let r = UIGraphicsImageRenderer(size:self.iv2.bounds.size)
let im2 = r.image {
_ in
im.draw(in: self.iv2.bounds)
}
self.iv2.image = im2
self.iv2.contentMode = .center
Run Code Online (Sandbox Code Playgroud)
因此,UIImageView在缩放时将栅格化(例如,对于Aspect Fit),但是在代码中进行绘制将保留矢量数据。
编辑 Xcode 9 beta 5中的新增功能,现在可以正常使用了!在此屏幕快照中,第二个图像视图仅按比例缩放即可填充,仅此而已。我们调整大小!
编辑在玩Xcode 11时,我终于找到了一个始终有效的公式。这意味着在启动时,无需额外的代码,在图像视图或其他地方,基于矢量的图像无论大小都会显得清晰。
在资产目录中,必须将“比例”弹出菜单设置为“单个比例”,然后将基于矢量的图像放入1x插槽。检查保留向量数据。做完了
就我而言(Xcode 9.4.1),imageView是在Interface Builder中创建的-我注意到最初到达屏幕时,图像模糊。如果然后更改设备方向,图像将变得清晰。我尝试手动调用其他方法viewDidLoad(),这是到目前为止我发现的结果:
这工作:
let image = imageView.image
imageView.image = nil
imageView.image = image
Run Code Online (Sandbox Code Playgroud)
这些都不起作用:
imageView.layoutSubviews()
imageView.layoutMarginsDidChange()
imageView.setNeedsLayout()
imageView.setNeedsDisplay()
imageView.reloadInputViews()
imageView.updateConstraints()
imageView.contentMode = .center ; imageView.contentMode = .scaleToFill
Run Code Online (Sandbox Code Playgroud)
UIImageView如果您经常调用它,那么您当然应该扩展或子类化,例如这样
class UIImageViewWithPreserveVectorDataFix: UIImageView {
override func awakeFromNib() {
super.awakeFromNib()
let image = self.image
self.image = nil
self.image = image
}
}
Run Code Online (Sandbox Code Playgroud)
(然后将其设置UIImageViewWithPreserveVectorDataFix为Interface Builder中的类)
| 归档时间: |
|
| 查看次数: |
3632 次 |
| 最近记录: |