繁体   English   中英

Swift 错误:无法将类型 UIColor 的值分配给类型 CGColor

[英]Swift error: Can't assign value of type UIColor to type CGColor

我的视图中有两个输入字段, loginEmailInputloginPasswordInput

我正在尝试更改边框颜色。 我在ViewController.swift中的代码如下所示:

import UIKit

class ViewController: UIViewController, UITextFieldDelegate {

    @IBOutlet weak var loginPasswordInput: UITextField!
    @IBOutlet weak var loginEmailInput: UITextField!

    let borderColor : UIColor = UIColor(red:0.39, green:0.76, blue:0.37, alpha:1)
    loginEmailInput.layer.borderColor = borderColor
    loginPasswordInput.layer.borderColor = borderColor

    override func viewDidLoad() {
        super.viewDidLoad()

        //etc....

但是,这两行都显示错误:

loginEmailInput.layer.borderColor = borderColor
loginPasswordInput.layer.borderColor = borderColor

错误是:

无法将类型 UIColor 的值分配给类型 CGColor

我该如何解决这个问题?

对于 CALayer,例如使用:

UIColor.blue.cgColor

一般来说,layers/ CALayers使用 CG(Core Graphics)颜色。 对于视图背景之类的东西,您可以使用view.backgroundColor = .blue类的东西。 UIColor 是 UIKit FrameWork (NSObject) 的一部分,CG 是 Core Graphic (CF/Core Foundation Library) 的一部分

注意:对于非常旧的 Swift 版本(Swift 1 和 2),您可以使用:

UIColor.blueColor().CGColor
imageView.layer.borderColor = UIColor.black.cgColor

我们可以通过将 UIcolor 转换为 ciColor 来定义颜色。 使用以下代码:

imageView.layer.borderColor = UIColor(ciColor: .blue)

在我的案例中:使用自定义颜色:

   view.layer.borderColor = Colors.Mountain.color.cgColor

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM