我试图让我的UIButton更时尚,更吸引眼球,但当我尝试使用我找到的一些代码时,它会一直告诉我,预期声明并且不想工作。
CAGradientLayer *btnGradient = [CAGradientLayer layer]
btnGradient.frame = btn.bounds
btnGradient.colors = [NSArray arrayWithObjects:
(id)[[UIColor colorWithRed:102.0f / 255.0f green:102.0f / 255.0f blue:102.0f / 255.0f alpha:1.0f] CGColor],
(id)[[UIColor colorWithRed:51.0f / 255.0f green:51.0f / 255.0f blue:51.0f / 255.0f alpha:1.0f] CGColor],
nil]
[btn.layer insertSublayer:btnGradient atIndex:0]
CALayer *btnLayer = [btn layer]
[btnLayer setMasksToBounds:YES]
[btnLayer setCornerRadius:5.0f]
我修复了它所遇到的问题,我将代码更改为swift,但是现在当我为UIButton实现渐变背景时,它会关闭圆角,我无法弄清楚原因。这是我现在的代码......
let gradient: CAGradientLayer = CAGradientLayer()
gradient.frame = self.bounds
gradient.colors = [
UIColor.grayColor().CGColor,
UIColor.lightGrayColor().CGColor
]
gradient.locations = [0 , 1.0]
/* make it horizontal */
gradient.startPoint = CGPointMake(0, 0)
gradient.endPoint = CGPointMake(1, 1)
self.layer.insertSublayer(gradient, atIndex: 0)
self.layer.cornerRadius = 5.0
self.layer.borderColor = UIColor.blackColor().CGColor
self.layer.borderWidth = 1.5
答案 0 :(得分:3)
Expected Declaration
错误完全是Swift错误。你在这里的代码是Objective-C,用方括号('['和']')表示法表示,以及*(指针)。
您有两种选择:
将文件转换为Objective-C。如果您不了解Objective-C,那么这将花费更多的时间而不是保存。
将代码转换为Swift。 Swift中不存在某些类,但大多数方法调用都是相同的,除非[object method]更改为object.method()。