ios - 我的视图边界开始处的空间
问题描述
我正在为我的视图添加一个边框,如下所示:
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 的视图末尾获得空间
如何解决?
解决方案
这意味着您的 UI 未更新,调用viewdidAppear或强制使用 viewdidload 更新主线程中的 UI
DispatchQueue.main.async {
//call your addBottomBorderWithColor
}
推荐阅读
- arrays - 错误:为数组赋值时,赋值给数组类型的表达式
- swift - 如何使用 SwiftUI 将图像对齐到列表行的右上角?
- javascript - 如何在不创建预渲染错误的情况下将 mailchimp 集成脚本添加到 next.js `Head`?
- sql - 将同一表中的行转换为列并从表中删除该行
- javascript - React-Bootstrap ONLY 关闭按钮样式不起作用
- mysql - 约束不存在无法删除表
- flutter - 如何在 Flutter Web 中处理浏览器的后退按钮
- docker - 如何使用 docker 启动停止的 couchbase 集群
- c# - 在不使用 pdf 查看器的情况下打印带有有效图标的 pdf - C#
- node.js - 如何通过mongoose中的查询ref对象获取数据