Tie*_*eme 11 statusbar ios swift safearealayoutguide iphone-x
默认情况下,iPhone X上的状态栏如下所示:
但我想实现这个目标:
我尝试设置preferredStatusBarStyle为lightContent但只有在将状态栏后面的背景设置为黑色后才能使用.
为了修复圆角,我最后添加了另一个圆角的子视图.
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .black
let roundedView = UIView(
frame: CGRect(
x: 0,
y: UIApplication.shared.statusBarFrame.height,
width: view.frame.width,
height: view.frame.height
)
)
roundedView.layer.cornerRadius = 10
roundedView.layer.masksToBounds = true
roundedView.backgroundColor = .white
view.addSubview(roundedView)
let label = UILabel(frame: CGRect(x: 0, y: 0, width: view.frame.width, height: 60))
label.text = "Black statusbar!"
label.textAlignment = .center
roundedView.addSubview(label)
}
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
}
Run Code Online (Sandbox Code Playgroud)
我想知道这是否是最好的方法..必须有更好的方法来实现这一目标.
UPDATE
这是一个可怕的想法,因为:
请勿掩盖或特别注意按键显示功能.不要试图通过在屏幕的顶部和底部放置黑条来隐藏设备的圆角,传感器外壳或用于访问主屏幕的指示器.不要使用括号,边框,形状或说明文字等视觉装饰来特别注意这些区域.
视图顶部的圆角可能看起来不错,但您必须在代码中添加例外以确保其他iPhone上不显示圆角.您需要将它放在所有ViewControllers/Storyboard中.这不是那么好.
视图底部的圆角将在屏幕截图中显示为直线,但顶部的角(手动设置)不会.当用户分享您的应用时,这将是丑陋的.
Kru*_*nal 15
安全区域布局是您的问题的解决方案.
我尝试在现有项目中使用该解决方案并且工作正常.
以下是带有结果的示例快照,通过启用或禁用安全区布局,我进行了测试和实施.
仅供参考:在这些快照中,主视图具有红色背景,子视图具有蓝色背景颜色.
自动版式
| 归档时间: |
|
| 查看次数: |
12834 次 |
| 最近记录: |