Цель
Я создал свой собственный подкласс UITextField, чтобы спроектировать его так, чтобы не было границы, только белая линия под текстом. (Код подкласса ниже)
Выпуск
К сожалению, белая линия не доходит до конца текстового поля (по ширине):
Я ограничил текстовое поле расстоянием 0 px к левому и правому краям вида, но, как показывают изображения ниже, линия не соответствует этим ограничениям.
Мои исследования и гипотезы
Я потратил довольно много времени на отладку, единственное, о чем я могу думать, это то, что измерения, указанные в коде (скопированы ниже), выполняются до того, как ограничения применяются к представлению, что я не знаю как решить.
код
//In a UITextField subclass
override init(frame: CGRect) {
super.init(frame: frame)
setup()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setup()
}
public override func awakeFromNib() {
super.awakeFromNib()
setup()
}
func setup() {
self.delegate = self
// BORDER
// Remove rectangular border
self.borderStyle = .none
self.layer.borderColor = UIColor(red: 1, green: 1, blue: 1, alpha: 0).cgColor //Make transparent
self.layer.borderWidth = 0 // width = 0
// Add bottom border
bottomBorder = UIView(frame: CGRect(x: 0, y: self.frame.height, width: self.frame.width, height: 1))
bottomBorder.backgroundColor = UIColor.white
self.addSubview(bottomBorder)
}