分辨率之间发生高度变化的边界

时间:2018-09-24 05:40:47

标签: ios swift graphics border

我动态创建一个具有以下功能的边框:

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 ...

我的函数getBorderLabeltextFieldClass构建器中这样调用:

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)

绝对没有破坏边界的一部分

请,我哪里出问题了?

0 个答案:

没有答案