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

Swift 4 - UITextfield border radius color issue

我目前正在试验 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

你看我想要达到的目标是让背景颜色与我屏幕的其余部分相同(我不希望文本字段的边框旁边是白色。我的按钮也是如此,边框半径根本不会改变(使用的图像与我的按钮大小相同。

欢迎任何帮助!

如果您想申请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 上获得 "same" 的结果