Swift 4 - UITextfield 边框半径颜色问题

Posted

技术标签:

【中文标题】Swift 4 - UITextfield 边框半径颜色问题【英文标题】:Swift 4 - UITextfield border radius color issue 【发布时间】:2017-11-18 15:05:37 【问题描述】:

我目前正在试验 UITextfields(我是初学者)。 现在我已经设置了我的应用程序的背景颜色并设置了边框半径,但是我在执行此操作时遇到了一个小问题。

我的代码:

        superView.backgroundColor = backgroundColorrr
        loginView.backgroundColor = backgroundColorrr

        loginLabel.textColor = UIColor.white
        loginLabel.text = "Login"

        loginButton.layer.cornerRadius = 5
        loginButton.layer.borderWidth = 2.0
        loginButton.imageView?.contentMode = UIViewContentMode.scaleToFill
        loginButton.layer.borderColor = UIColor.lightGray.cgColor
        loginButton.layer.backgroundColor = backgroundColorrr.cgColor
        loginButton.titleLabel?.textColor = UIColor.white
        loginButton.titleLabel?.text = "Login"

        userNameTextField.layer.cornerRadius = 15.0
        userNameTextField.layer.backgroundColor = backgroundColorrr.cgColor
        userNameTextField.layer.borderWidth = 0.5

我的结果:

current layout in simulator

您看到我想要实现的是与屏幕的其余部分具有相同的背景颜色(我不希望文本字段边框旁边的白色。我的按钮也是如此,边框半径赢了'根本不改变(使用的图像大小与我的按钮大小相同。

欢迎任何帮助!

【问题讨论】:

【参考方案1】:

如果要申请cornerRadius需要设置layer.masksToBounds = true

设置 userNameTextField.layer.masksToBounds = trueloginButton.layer.masksToBounds = true

您的完整代码应如下所示:

superView.backgroundColor = backgroundColorrr
loginView.backgroundColor = backgroundColorrr

loginLabel.textColor = UIColor.white
loginLabel.text = "Login"

loginButton.layer.masksToBounds = true
loginButton.layer.cornerRadius = 5
loginButton.layer.borderWidth = 2.0
loginButton.imageView?.contentMode = UIViewContentMode.scaleToFill
loginButton.layer.borderColor = UIColor.lightGray.cgColor
loginButton.layer.backgroundColor = backgroundColorrr.cgColor
loginButton.titleLabel?.textColor = UIColor.white
loginButton.titleLabel?.text = "Login"

userNameTextField.layer.masksToBounds = true
userNameTextField.layer.cornerRadius = 15.0
userNameTextField.layer.backgroundColor = backgroundColorrr.cgColor
userNameTextField.layer.borderWidth = 0.5

注意:如果您申请clipsToBounds = true,您可以在cornerRadius 上获得“相同”的结果。

【讨论】:

非常感谢!!

以上是关于Swift 4 - UITextfield 边框半径颜色问题的主要内容,如果未能解决你的问题,请参考以下文章

在 Swift 中显示 UITextField 的底部边框不适用于约束。

Swift - 文本输入框(UITextField)的用法

如何在 Swift 中的 UITextField 下显示错误

UITextField 边框底部不会完全显示

UITableView 和 UITextField 边框颜色问题

以编程方式在 UIView 上添加 UITextField Swift