Прозрачный фон UITextField

#ios #swift

#iOS #swift

Вопрос:

Я запрограммировал UITextField на округление в верхнем левом и правом углах, но фон текстового поля теперь полностью черный

 let backgroundImage = UIImageView(frame: UIScreen.main.bounds)
backgroundImage.image = UIImage(named: "signupbackground.jpg")
self.view.insertSubview(backgroundImage, at: 0)
self.signupButton.layer.cornerRadius = 5

let rectShape = CAShapeLayer()
rectShape.bounds = self.userEmailTextField.frame
rectShape.position = self.userEmailTextField.center
rectShape.path = UIBezierPath(roundedRect: self.userEmailTextField.bounds, byRoundingCorners: [.topLeft , .topRight], cornerRadii: CGSize(width: 20, height: 20)).cgPath

self.userEmailTextField.layer.backgroundColor = UIColor.black.cgColor
//Here I'm masking the textView's layer with rectShape layer
self.userEmailTextField.layer.mask = rectShape
  

Как мне сделать так, чтобы верхние левые / правые углы имели одинаковый радиус, но текстовое поле было полностью видно?

Ответ №1:

Вы устанавливаете цвет фона слоя на черный:

 self.userEmailTextField.layer.backgroundColor = UIColor.black.cgColor
  

Попробуйте UIColor.clear.cgColor вместо этого, и вы можете захотеть установить это после рисования маски:

 self.userEmailTextField.layer.mask = rectShape
self.userEmailTextField.layer.backgroundColor = UIColor.clear.cgColor
  

Комментарии:

1. Хорошо, снова переключите порядок?

2. Я получаю то же самое

3. Хорошо, возможно, вам придется нарисовать границу сверху после этого, а не использовать подобную маску.

4. pastebin.com/0hkSwjNY Теперь это код, но он все тот же

5. Исправьте это с помощью: txfSearchField. слой.Угловой радиус = 5,0;