iOS11之后,我们不止可以在Asset Catalogs中添加图片,还可以在其中添加Color。
点击"New Color Set"之后,我们便可以设置颜色的Asset Catalogs:
目前Xcode提供多种选择颜色的方案,使用起来非常方便:
image.png image.png之后,我们在代码中便可以很方便的使用Asset Catalogs中定义的Color:
//Objective-C
if (@available(iOS 11.0, *)) {
self.view.backgroundColor = [UIColor colorNamed:@"grass"];
} else {
// Fallback on earlier versions
self.view.backgroundColor = [UIColor redColor];
}
//swift
view.backgroundColor = UIColor(named:"grass")
另外,在Xcode9中提供“基于矢量的 asset”的支持。、
在之前的Xcode中,添加 image asset 的时候,我们可以添加pdf格式的。但Xcode只是把@1x,@2x,@3x资源提供给app包,而不是矢量图。
在Xcode9中,提供了一个新的选项叫做"Preserve Vector Data"
这样的话,当我们在代码中加载图像的时候,如果我们让它显示的尺寸比它本身尺寸大的话,系统在运行时会自动把它放大。
也就是说,在系统渲染图片时,不会有任何的质量损失:
//swift
let normal = UIImageView(image: UIImage(named: "cocoapod"))
normal.tintColor = UIColor(named: "covfefe")
view.addSubview(normal)
let big = UIImageView(image: UIImage(named: "cocoapod"))
big.tintColor = UIColor(named: "cream")
big.frame = CGRect(x: 50, y: 200, width: normal.bounds.size.width * 2, height: normal.bounds.size.height * 2)
view.addSubview(big)
image.png
//Objective-c
UIImageView *normal = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"cluck"]];
normal.center = CGPointMake(100, 150);
[self.view addSubview:normal];
UIImageView *big = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"cluck"]];
big.frame = CGRectMake(50, 250, normal.bounds.size.width * 2, normal.bounds.size.height * 2);
[self.view addSubview:big];
网友评论