CAGradientLayer在Swift中的等效方式是什么?

9

我想迁移一些创建渐变图层的Objective-C代码

CAGradientLayer *gradientLayer = [CAGradientLayer layer];
gradientLayer.colors = colors;
gradientLayer.locations = locations;
gradientLayer.frame = view.bounds;

[view.layer insertSublayer:gradientLayer atIndex:index];

然而在Swift中,CAGradientLayer似乎没有静态的'layer'方法或构造函数。试图将其用作类型会产生以下结果:
let a:CAGradientLayer? = null

错误:将模块“CAGradientLayer”用作类型

据我所知,“CAGradientLayer”不是我可以导入的模块。在Swift中实现渐变图层的正确方法是什么?


首先,除非它是可选的,否则无法分配给null。您尝试分配给已初始化的渐变层了吗? - iluvcapra
顺便提一下,使用nil而不是null。 - Jack Lawrence
1个回答

17

你需要先导入QuartzCore:

import QuartzCore

let a:CAGradientLayer = CAGradientLayer()

3
你也可以省略类型声明(如 let a = CAGradientLayer())。 - zpasternack

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接