Подтвердить что ты не робот

Как установить UITextField borderColor?

Я пытаюсь установить UITextField borderColor в iOS 8 в Swift. Я пробовал использовать этот код:

myTextField.layer.borderColor = UIColor( red: 0.5, green: 0.5, blue:0, alpha: 1.0 ) 

Я получил эту ошибку:

UIColor не конвертируется в CGColor

4b9b3361

Ответ 1

@coderRed дал вам ответ Objective C и ответ Swift. Игнорировать его первую строку

Я разбил его на 2 утверждения ниже в Swift:

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

Надеюсь, это поможет! Удачи вам в обучении Swift

Ответ 2

Вы можете попробовать это, это работает для меня

myTextField.layer.cornerRadius = 8.0
myTextField.layer.masksToBounds = true
myTextField.layer.borderColor = UIColor( red: 153/255, green: 153/255, blue:0/255, alpha: 1.0 ).CGColor
myTextField.layer.borderWidth = 2.0

Ответ 3

Попробуйте следующее:

myTextField.layer.borderColor = [UIColor blackColor].CGColor;

myTextField.layer.borderColor = (UIColor( red: 0.5, green: 0.5, blue:0, alpha: 1.0 )).CGColor;

Ответ 4

Я считаю, что вам нужно установить borderWidth

myTextField.layer.borderWidth = 10

Ответ 5

Я обнаружил, что самый простой способ установить цвет границы с помощью Swift 3 - это сделать

myTextField.layer.borderColor = UIColor.gray.cgColor

или

myTextView.layer.borderColor = UIColor.gray.cgColor

Надеюсь, это сработает! Удачи.

Ответ 6

Проблема с этим заключается в преобразовании UIColor в CGColor, который объясняется в приведенных выше ответах, но проще всего, все, что вам нужно сделать для этого преобразования, - это добавить .CGColor в конец вашего UIColor. т.е.

myTextField.layer.borderColor = UIColor( red: CGFloat, green: CGFloat, blue:CGFLoat, alpha: CGFloat ).CGColor

Ответ 7

myTextField.layer.borderColor = UIColor.darkGrayColor().CGColor

Ответ 8

Ваш код:

myTextField.layer.borderColor = [UIColor blackColor].CGColor;
myTextField.layer.borderColor = (UIColor( red: 0.5, green: 0.5, blue:0, alpha: 1.0 )).CGColor;

Что я делаю быстро и что ВСЕГДА работает:

myTextField.layer.borderColor = UIColor.blackColor().CGColor;
myTextField.layer.borderColor = UIColor(red: 0.5, green: 0.5, blue:0, alpha: 1.0 ).CGColor;

Надеюсь, что это поможет:)

Ответ 9

Вы также можете добавить строку, например:

myTextField.layer.borderWidth = CGFloat(1.0)

К предыдущим ответам.

В моем случае изменение цвета не было видимым, пока я не разместил эту строку.

Ответ 10

Попробуйте это,

extension UITextField{
    func setBorderColor(width:CGFloat,color:UIColor) -> Void{
        self.layer.borderColor = color.cgColor
        self.layer.borderWidth = width
    }
}

и реализуйте эту функцию везде, где хотите,

 textField.setBorderColor(width: 2.0, color: UIColor.brown)

Надеюсь на эту помощь!

Ответ 11

Вы пробовали

myTextField.layer.borderColor = UIColor( red: 0.5, green: 0.5, blue:0, alpha: 1.0 ).cgColor?

Вы также можете выделить цвет as! CGColor, но использовать .cgColor в конце предпочтительнее.