如何设置UITextField的borderColor?

时间:2014-07-15 17:35:19

标签: ios swift

我正在尝试在Swift中的iOS 8中设置UITextField' borderColor。我尝试使用此代码:

myTextField.layer.borderColor = UIColor( red: 0.5, green: 0.5, blue:0, alpha: 1.0 ) 

我收到了这个错误:

  

UIColor无法转换为CGColor

13 个答案:

答案 0 :(得分:40)

@coderRed给了你一个Objective C答案和一个Swift答案。忽略他的第一行

我在Swift中把它分成了两个语句:

let myColor : UIColor = UIColor( red: 0.5, green: 0.5, blue:0, alpha: 1.0 )
myTextField.layer.borderColor = myColor.CGColor

希望这有帮助!祝学习Swift好运

答案 1 :(得分:31)

你可以试试这个,它对我有用

myTextField.layer.cornerRadius = 8.0
myTextField.layer.masksToBounds = true
myTextField.layer.borderColor = UIColor( red: 153/255, green: 153/255, blue:0/255, alpha: 1.0 ).CGColor
myTextField.layer.borderWidth = 2.0

答案 2 :(得分:12)

试试这个:

myTextField.layer.borderColor = [UIColor blackColor].CGColor;

myTextField.layer.borderColor = (UIColor( red: 0.5, green: 0.5, blue:0, alpha: 1.0 )).CGColor;

答案 3 :(得分:8)

我相信你需要设置borderWidth

myTextField.layer.borderWidth = 10

答案 4 :(得分:8)

我发现使用Swift 3设置边框颜色的最简单方法是

myTextField.layer.borderColor = UIColor.gray.cgColor

myTextView.layer.borderColor = UIColor.gray.cgColor

希望这有效! 祝你好运。

答案 5 :(得分:4)

这个问题是关于将UIColor转换为CGColor,这在上面的答案中有解释,但最简单的说,你要做的就是将.CGColor添加到你的结尾。的UIColor。即

myTextField.layer.borderColor = UIColor( red: CGFloat, green: CGFloat, blue:CGFLoat, alpha: CGFloat ).CGColor

答案 6 :(得分:3)

myTextField.layer.borderColor = UIColor.darkGrayColor().CGColor

答案 7 :(得分:2)

您的代码:

myTextField.layer.borderColor = [UIColor blackColor].CGColor;
myTextField.layer.borderColor = (UIColor( red: 0.5, green: 0.5, blue:0, alpha: 1.0 )).CGColor;

我在swift中做了什么以及总是在做什么:

myTextField.layer.borderColor = UIColor.blackColor().CGColor;
myTextField.layer.borderColor = UIColor(red: 0.5, green: 0.5, blue:0, alpha: 1.0 ).CGColor;

希望这会有所帮助:)

答案 8 :(得分:2)

您可能还想添加以下行:

myTextField.layer.borderWidth = CGFloat(1.0)

以前的答案。

就我而言,在我放置这条线之前,颜色变化是不可见的。

答案 9 :(得分:2)

试试这个,

extension UITextField{
    func setBorderColor(width:CGFloat,color:UIColor) -> Void{
        self.layer.borderColor = color.cgColor
        self.layer.borderWidth = width
    }
}

并在任何地方实现此功能,

 textField.setBorderColor(width: 2.0, color: UIColor.brown)

希望这有帮助!

答案 10 :(得分:1)

你试过吗

myTextField.layer.borderColor = UIColor( red: 0.5, green: 0.5, blue:0, alpha: 1.0 ).cgColor

你也可以投射颜色as! CGColor,但最后使用.cgColor是优先的。

答案 11 :(得分:0)

您需要使用cgColor属性。我还认为您需要设置borderWidth才能使其正常工作。 示例:

textfield.layer.borderWidth = 1.0
textfield.layer.borderColor = UIColor.white.cgColor // Use CGColor

您可能会发现扩展很方便,这样其他视图就可以使用它。

extension UIView {
    func addBorderAndColor(color: UIColor, width: CGFloat, corner_radius: CGFloat = 0, clipsToBounds: Bool = false) {
        self.layer.borderWidth  = width
        self.layer.borderColor  = color.cgColor
        self.layer.cornerRadius = corner_radius
        self.clipsToBounds      = clipsToBounds
    }
}

这样称呼:

textfield.addBorderAndColor(color: UIColor.white, width: 0.5, corner_radius: 5, clipsToBounds: true)

答案 12 :(得分:0)

在viewDidLoad方法中执行以下代码:

textField.layer.borderColor = UIColor.black
textField.layer.borderColor = (UIColor(red:0.5,green:0.5,blue:1,alpha:1.0))