首页 > 解决方案 > 分辨率之间高度变化的边框

问题描述

我使用以下函数动态创建边框:

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)

绝对没有任何东西打破边界的某些部分

请问,我哪里错了?

标签: iosswiftgraphicsborder

解决方案


推荐阅读