Chr*_*son 3 cocoa-touch uiimage ios asset-catalog
我有一个名为“ SmileyFace”的图像集,其中包含1x,2x和3x图像大小。我想将特定尺寸的图像复制到粘贴板。如何在下面的代码中以编程方式引用1x,2x或3x?
let image = UIImage(named: "SmileyFace" )
let image2 = UIImagePNGRepresentation( image )
UIPasteboard.generalPasteboard().setData(image2, forPasteboardType: "public.png")
Run Code Online (Sandbox Code Playgroud)
此代码复制1x。我要复制2x图像。
我在Apple文档中没有找到任何似乎可以引用此内容的东西。
您可以使用imageAsset.registerImage()方法:
let scale1x = UITraitCollection(displayScale: 1.0)
let scale2x = UITraitCollection(displayScale: 2.0)
let scale3x = UITraitCollection(displayScale: 3.0)
let image = UIImage(named: "img.png")!
image.imageAsset.registerImage(UIImage(named: "img_2x.png")!, withTraitCollection: scale2x)
image.imageAsset.registerImage(UIImage(named: "img_3x.png")!, withTraitCollection: scale3x)
Run Code Online (Sandbox Code Playgroud)
您可以为所有比例尺注册2x图像。
但是,我认为访问具有特定分辨率的图像不是一个好主意。设置1x,2x和3x图像的想法是让系统决定应加载哪个图像。如果确实需要,可以将1x,2x和3x图像的名称更改为SmileyFace-Small,SmileyFace-regular,SmileyFace-large。
更新:
func imageWithTraitCollection(traitCollection: UITraitCollection) -> UIImage可以引用特定比例的图像:
let image1 = image.imageAsset.imageWithTraitCollection(UITraitCollection(traitsFromCollections: [scale1x]))
let image2 = image.imageAsset.imageWithTraitCollection(UITraitCollection(traitsFromCollections: [scale2x]))
let image3 = image.imageAsset.imageWithTraitCollection(UITraitCollection(traitsFromCollections: [scale3x]))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2676 次 |
| 最近记录: |