Как изменить цвет границы всего текстового поля в Swift 3

Как изменить цвет всех границ TextField в Swift 3. Я создаю одно приложение для iPad. у меня есть много текстовых полей в моем файле .xib, и теперь я хочу изменить цвет границы, но так много строк для написания определенного текстового поля, так что какой-нибудь способ для этого?


person Harshil Kotecha    schedule 27.03.2017    source источник
comment
вы можете сделать расширение текстового поля.   -  person Piyush Sinroja    schedule 27.03.2017


Ответы (3)


Добавьте это расширение, чтобы создать границу для всех текстовых полей в вашем проекте.

extension UITextField
{
    open override func draw(_ rect: CGRect) {
        self.layer.cornerRadius = 3.0
        self.layer.borderWidth = 1.0
        self.layer.borderColor = UIColor.lightGray.cgColor
        self.layer.masksToBounds = true
    }
}
person RajeshKumar R    schedule 27.03.2017
comment
как установить цвет #999999 - person Harshil Kotecha; 29.03.2017
comment
Используйте это расширение stackoverflow.com/a/42573932/7250862 и замените это self.layer.borderColor = UIColor.uicolorFromHex(999999, alpha: 1)).cgColor - person RajeshKumar R; 29.03.2017

Вы должны создать новый класс, который является подклассом UITextField следующим образом:

import UIKit

class YourTextField: UITextField {
    required init(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)!
        self.setBorderColor()
    }
    required override init(frame: CGRect) {
        super.init(frame: frame)
        self.setBorderColor()
    }
    func setBorderColor(){
        self.layer.borderColor = .red // color you want
        self.layer.borderWidth = 3
        // code which is common for all text fields
    }
}

Теперь откройте xib, выберите все текстовые поля. В инспекторе удостоверений измените пользовательский класс на YourTextField Таким образом, даже если у вас есть 1000 текстовых полей в вашем проекте, для этой цели не нужно писать еще одну строку.

person Jagdeep Singh    schedule 27.03.2017

person    schedule
comment
вызовите вышеуказанный метод, например: txtfield.cornerRadius (значение: 5.0) - person Piyush Sinroja; 27.03.2017
comment
я хочу изменить каждый TextField borderColor в моем приложении более 5000+ TextField - person Harshil Kotecha; 27.03.2017