我的视图边界开始处的空间

时间:2018-07-10 09:08:52

标签: ios swift xcode layer

在我的视图中添加边框,如下所示:

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)
}

但是扼杀在iPhone 7上可以正常工作,但是在iPhone 7 plus上..我会得到以下结果:

screenshot

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

视图的阴影发生了同样的事情..正在这样做:

     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上的视图末尾获得空间

enter image description here

如何解决?

2 个答案:

答案 0 :(得分:0)

这表示您的用户界面未更新,调用 viewdidAppear 或使用

强制在viewdidload的主线程中更新用户界面
DispatchQueue.main.async {
   //call your addBottomBorderWithColor
}

答案 1 :(得分:0)

尝试通过以下方式致电addBottomBorderWithColor

 override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()


}

根据ViewDidLoad之后的约束条件更新用户界面。