Swift 4 - проблема цвета радиуса границы UITextfield

В настоящее время я экспериментирую с 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

Мой результат:

текущий макет в симуляторе

Вы видите, чего я пытаюсь добиться, так это иметь тот же цвет фона, что и остальная часть моего экрана (мне не нужен белый цвет рядом с границей текстового поля. То же самое касается моей кнопки, радиус границы не изменится вообще (используемое изображение имеет тот же размер, что и размер моей кнопки.

Любая помощь приветствуется!


person Mathias Schrooten    schedule 18.11.2017    source источник


Ответы (1)


Вам необходимо установить layer.masksToBounds = true, если вы хотите применить cornerRadius.

Установите userNameTextField.layer.masksToBounds = true и loginButton.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

Примечание. Вы можете добиться "тех же" результатов на cornerRadius, если примените clipsToBounds = true.

person Gustavo Vollbrecht    schedule 18.11.2017
comment
Большое спасибо!! - person Mathias Schrooten; 18.11.2017