试图设置UIButton样式,获取错误

时间:2016-03-18 13:52:19

标签: ios objective-c uibutton calayer uicolor

我试图让我的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

1 个答案:

答案 0 :(得分:3)

Expected Declaration错误完全是Swift错误。你在这里的代码是Objective-C,用方括号('['和']')表示法表示,以及*(指针)。

您有两种选择:

  1. 将文件转换为Objective-C。如果您不了解Objective-C,那么这将花费更多的时间而不是保存。

  2. 将代码转换为Swift。 Swift中不存在某些类,但大多数方法调用都是相同的,除非[object method]更改为object.method()。