Swift Button.setText 不适用于渐变
Swift Button.setText doesn't work with gradient
我是 Swift 的新人,我有一个问题。如果我尝试使用渐变,我的按钮不会设置文本。这是我的代码:
let gradient:CAGradientLayer = CAGradientLayer()
let colorBottom = UIColor(red: 9/255.0, green: 137/255.0, blue: 133/255.0, alpha: 1.0).CGColor
let colorTop = UIColor(red: 222.0/255.0, green: 255.0/255.0, blue: 201.0/255.0, alpha: 1.0).CGColor
gradient.colors = [colorTop, colorBottom]
gradient.startPoint = CGPoint(x: 0.0, y: 0.5)
gradient.endPoint = CGPoint(x: 1.0, y: 0.5)
gradient.frame = LoginButton.bounds
gradient.cornerRadius = 25.0
LoginButton.layer.addSublayer(gradient)
LoginButton.setTitle("Login", forState: UIControlState.Normal)
LoginButton.setTitleColor(UIColor.blackColor(), forState: .Normal)
self.view.addSubview(LoginButton)
添加子层与添加子视图的工作方式相同,因此添加渐变层可能会覆盖绘制文本的其他层。
如果删除此行是否有效?
LoginButton.layer.addSublayer(gradient)
如果是,请尝试查看 LoginButton.layer.sublayers
中有多少层,并尝试使用以下方法之一将渐变层插入其中一个子层的后面(无论在哪个看起来最好的地方):
-insertSublayer:above:
-insertSublayer:below:
-insertSublayer:atIndex:
这一行是问题所在:
LoginButton.layer.addSublayer(gradient)
不要向 UIButton 添加任何额外的层。它已经知道如何画自己了。如果你想让它有一个渐变背景,把渐变画成一个图像,然后按照正常的方式将它设置为按钮的背景图像。
或者把按钮弄清楚,把渐变图层放在按钮后面(虽然这样不太好)。
我是 Swift 的新人,我有一个问题。如果我尝试使用渐变,我的按钮不会设置文本。这是我的代码:
let gradient:CAGradientLayer = CAGradientLayer()
let colorBottom = UIColor(red: 9/255.0, green: 137/255.0, blue: 133/255.0, alpha: 1.0).CGColor
let colorTop = UIColor(red: 222.0/255.0, green: 255.0/255.0, blue: 201.0/255.0, alpha: 1.0).CGColor
gradient.colors = [colorTop, colorBottom]
gradient.startPoint = CGPoint(x: 0.0, y: 0.5)
gradient.endPoint = CGPoint(x: 1.0, y: 0.5)
gradient.frame = LoginButton.bounds
gradient.cornerRadius = 25.0
LoginButton.layer.addSublayer(gradient)
LoginButton.setTitle("Login", forState: UIControlState.Normal)
LoginButton.setTitleColor(UIColor.blackColor(), forState: .Normal)
self.view.addSubview(LoginButton)
添加子层与添加子视图的工作方式相同,因此添加渐变层可能会覆盖绘制文本的其他层。
如果删除此行是否有效?
LoginButton.layer.addSublayer(gradient)
如果是,请尝试查看 LoginButton.layer.sublayers
中有多少层,并尝试使用以下方法之一将渐变层插入其中一个子层的后面(无论在哪个看起来最好的地方):
-insertSublayer:above:
-insertSublayer:below:
-insertSublayer:atIndex:
这一行是问题所在:
LoginButton.layer.addSublayer(gradient)
不要向 UIButton 添加任何额外的层。它已经知道如何画自己了。如果你想让它有一个渐变背景,把渐变画成一个图像,然后按照正常的方式将它设置为按钮的背景图像。
或者把按钮弄清楚,把渐变图层放在按钮后面(虽然这样不太好)。