我动态创建一个具有以下功能的边框:
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)
绝对没有破坏边界的一部分
请,我哪里出问题了?