首页 > 解决方案 > 我的视图边界开始处的空间

问题描述

我正在为我的视图添加一个边框,如下所示:

func addBottomBorderWithColor(color: UIColor, width: CGFloat) {
    let border = CALayer()
    border.backgroundColor = color.cgColor
    border.frame = CGRect(x: 0, y: self.frame.size.height, width: self.frame.size.width, height: width)
    self.layer.addSublayer(border)
}

但 Strangley 这在 Iphone 7 上运行良好,但在 iphone 7 plus .. 我会得到这个结果:

截屏

如您所见,视图边框的开头有一个空格..为什么?

视图的阴影也发生了同样的事情..我这样做是这样的:

     func dropShadow(scale: Bool = true) {
    layer.shadowColor = UIColor.lightGray.cgColor
    layer.shadowOpacity = 0.5
    layer.shadowOffset = CGSize.zero
    layer.shadowRadius = 1
    layer.shadowPath = UIBezierPath(rect: bounds).cgPath
    layer.shouldRasterize = true
    layer.rasterizationScale = scale ? UIScreen.main.scale : 1
}

并在 iphone 7 plus 的视图末尾获得空间

在此处输入图像描述

如何解决?

标签: iosswiftxcodelayer

解决方案


这意味着您的 UI 未更新,调用viewdidAppear或强制使用 viewdidload 更新主线程中的 UI

DispatchQueue.main.async {
   //call your addBottomBorderWithColor
}

推荐阅读