2016-03-01 94 views
1

我已经创建了一个UIButton:UIButton边框颜色默认为黑色。如何将其更改为用于设置按钮文本标题的默认(蓝色)颜色?

testNavigationButton.setTitle("Test", forState: .Normal) 
testNavigationButton.layer.borderWidth = 1 

我试图改变颜色为:

testNavigationButton.layer.borderColor = UIColor.blueColor().CGColor

但边框的颜色是不同的色调的蓝色不是用来设置默认的树荫按钮的标题。这阴影是什么,我怎样才能改变边框的颜色为这种颜色?

回答

2

你可以使用

let textColor = button.titleLabel?.textColor 

文字的颜色,并将其分配给您的BORDERCOLOR这样的:

button.layer.borderColor = textColor!.CGColor 

顺便说一下,从我的测试中,蓝色是#007aff你可以初始化它使用:

let color = UIColor(red: 0, green: 0.478, blue: 1, alpha: 1) 

更新

class MyButton: UIButton { 

    private let normalColor = UIColor(red: 0, green: 0.478, blue: 1, alpha: 1) 
    private let highlightedColor = UIColor(red: 0, green: 0.478, blue: 1, alpha: 0.3) 

    override var highlighted: Bool { 
     willSet { 
      if newValue != highlighted { 
       let anim = CABasicAnimation(keyPath: "borderColor") 
       anim.fromValue = newValue ? normalColor.CGColor : highlightedColor.CGColor 
       anim.toValue = newValue ? highlightedColor.CGColor : normalColor.CGColor 
       layer.borderColor = newValue ? highlightedColor.CGColor : normalColor.CGColor 
       anim.duration = CATransaction.animationDuration() 
       anim.timingFunction = CATransaction.animationTimingFunction() 
       layer.addAnimation(anim, forKey: "MyButton.BorderColor") 
      } 
     } 
    } 
} 
相关问题