如何设置 swift 3 UITextField 边框颜色?

Posted

技术标签:

【中文标题】如何设置 swift 3 UITextField 边框颜色?【英文标题】:How set swift 3 UITextField border color? 【发布时间】:2016-07-19 13:41:17 【问题描述】:

您好,我没有为 UITextfield 边框颜色更改工作的错误代码,但是在 Swift 3 中使用它时不要更改文本字段边框颜色并且不给出错误。我需要你的帮助我的代码在下面。

@IBOutlet weak var email: UITextField!
@IBOutlet weak var pass: UITextField!


override func viewDidLoad() 
    super.viewDidLoad()

    let myColor : UIColor = UIColor.white()
    email.layer.borderColor = myColor.cgColor
    pass.layer.borderColor = myColor.cgColor



谢谢!

【问题讨论】:

【参考方案1】:

你还需要设置border width,因为你的边框颜色已经设置了但是你的默认边框宽度是0.0所以你看不到它。

所以,设置边框宽度类似于,

  email.layer.borderWidth = 1.0

更新:

你的代码应该是这样的,

 @IBOutlet weak var email: UITextField!
 @IBOutlet weak var pass: UITextField!

 override func viewDidLoad() 
   super.viewDidLoad()

   let myColor = UIColor.white
   email.layer.borderColor = myColor.cgColor
   pass.layer.borderColor = myColor.cgColor

   email.layer.borderWidth = 1.0
   pass.layer.borderWidth = 1.0


【讨论】:

谢谢你的工作,我认为这会帮助很多人你可以在你的答案中写完整的代码我会接受它 不客气...:) 根据您的建议更新答案.. :) 我认为你需要在 swift 3 中删除 () borderColor 不起作用,除非您还设置了borderWidth 你也可以添加这个:email.layer.cornerRadius = 4【参考方案2】:

swift 3中使用以下代码:

在视图中确实加载了

 outer_line.layer.borderWidth = 1
 outer_line.layer.borderColor = UIColor.lightGray.cgColor

【讨论】:

【参考方案3】:

尝试使用这个, 可能对你有帮助

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

【讨论】:

【参考方案4】:

我认为你应该先提供一个borderWidth

@IBOutlet weak var email: UITextField!
@IBOutlet weak var pass: UITextField!


override func viewDidLoad() 
super.viewDidLoad()

let myColor : UIColor = UIColor.white()
email.layer.borderWidth = 1
email.layer.borderColor = myColor.cgColor
pass.layer.borderColor = myColor.cgColor



然后设置颜色:)

【讨论】:

【参考方案5】:

更新了 Swift 3:

如果要将底部边框设置为 UITextField,请使用以下代码行:

// 函数定义:

func setBottomBorderToTextFields()  

    let bottomLine = CALayer()
    bottomLine.frame = CGRect(x: 0, y: yourTextFieldName.frame.height - 1, width: yourTextFieldName.frame.width, height: 1)
    bottomLine.backgroundColor = UIColor.gray.cgColor // background color
    yourTextFieldName.borderStyle = UITextBorderStyle.none // border style
    yourTextFieldName.layer.addSublayer(bottomLine)

// 在 ViewDidLoad() 中:

self.setBottomBorderToTextFields()

【讨论】:

【参考方案6】:

您需要从UITextFieldlayer 属性中设置borderWidth

点赞:email.layer.borderWidth = 1

另外,如果您经常需要为视图设置边框,您可以进行如下扩展:

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
    

这样称呼: email.addBorderAndColor(color: UIColor.white, width: 0.5, corner_radius: 5, clipsToBounds: true)

由于这个方法设置了borderWidth,它也能解决你的问题。

【讨论】:

【参考方案7】:

它正在工作。

    给定边框宽度 然后给 bgcolor。
txtemail.layer.borderWidth = 1.0
txtemail.layer.borderColor = UIColor.blue.cgColor

确实有效

【讨论】:

和this one不一样

以上是关于如何设置 swift 3 UITextField 边框颜色?的主要内容,如果未能解决你的问题,请参考以下文章

如何让 UITextField 只允许使用 Swift 3 的整数?

使用标识符/标签 (SWIFT) 从 UIView 获取 UITextField

如何在 Swift 中将 UITextField 文本居中

更改 UISearchBar 中的 UITextField 高度 - Swift 3

如何限制 UITextField 在 Swift 中只接受数字?

如何在Swift 3中修复我的自定义UITextField对象?