我正在尝试在Swift中的iOS 8中设置UITextField
' borderColor
。我尝试使用此代码:
myTextField.layer.borderColor = UIColor( red: 0.5, green: 0.5, blue:0, alpha: 1.0 )
我收到了这个错误:
UIColor无法转换为CGColor
答案 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))