Я динамически создаю границу с помощью функции:
func getBorderLabel(width : CGFloat) -> UIView{
let borderView = UIView(frame : CGRect(x : 0, y : 0, width : width, height : 2))
let topColor = UIColor(rgb: 0x09D2E3)
let bottomColor = UIColor(rgb : 0xF600FF)
let gradientLayer = CAGradientLayer()
gradientLayer.colors = [topColor.cgColor,
bottomColor.cgColor]
gradientLayer.startPoint = CGPoint(x: 1, y: 0.3)
gradientLayer.endPoint = CGPoint(x: 0, y: 0.8)
gradientLayer.frame = borderView.bounds
gradientLayer.masksToBounds = false
gradientLayer.opacity = 1
borderView.layer.insertSublayer(gradientLayer, at: 0)
return borderView
}
все работает хорошо, но когда я запускаю код в симуляторе, я получаю другую высоту границы, как показано на экране ( IPHONE X):
Второй размер меньше первого ... но код такой же, а высота зафиксирована на 2px ...
Моя функция getBorderLabel
вызывается в конструкторе textFieldClass
следующим образом:
let borderView = getBorderLabel(width: TFView.bounds.width)
let containerBorderView = UIView(frame : CGRect(x : 0,
y : TFView.bounds.height * 0.40 + 22,
width : borderView.bounds.width,
height : borderView.bounds.height))
containerBorderView.addSubview(borderView)
TFView.addSubview(containerBorderView)
абсолютно ничто не нарушает некоторую часть границы
Пожалуйста, где я ошибаюсь