仅在iOS 11中为顶部安全区域设置背景色
我是斯威夫特的新手。我已经通过编程方式设置了我的顶部栏。它适用于除iOS版本11之外的所有版本 我想更改iPhone X中安全区域的背景色。目前,我刚刚添加了以下代码来隐藏状态栏仅在iOS 11中为顶部安全区域设置背景色,ios,iphone,swift3,safearealayoutguide,Ios,Iphone,Swift3,Safearealayoutguide,我是斯威夫特的新手。我已经通过编程方式设置了我的顶部栏。它适用于除iOS版本11之外的所有版本 我想更改iPhone X中安全区域的背景色。目前,我刚刚添加了以下代码来隐藏状态栏 override var prefersStatusBarHidden: Bool { return true } 我已使用以下代码创建了顶栏: //Top Bar let topBar = UIView(frame:CGRect(x: 0,y: 0, width: width, height:
override var prefersStatusBarHidden: Bool {
return true
}
我已使用以下代码创建了顶栏:
//Top Bar
let topBar = UIView(frame:CGRect(x: 0,y: 0, width: width, height: 60))
topBar.backgroundColor = UIColor.white
topBar.layer.shadowColor = UIColor.gray.cgColor
topBar.layer.shadowOffset = CGSize(width: 0, height: 3)
topBar.layer.shadowOpacity = 1
topBar.layer.masksToBounds = false
topBar.layer.shadowRadius = 8.0;
//ImageView - Back Button
let backBtn = UIButton(frame:CGRect(x: 25, y: 18, width: 18, height: 34))
let backBtnImage = UIImage(named: "back_button") as UIImage?
backBtn.setImage(backBtnImage, for: .normal)
backBtn.layer.masksToBounds = true
backBtn.addTarget(self,action:#selector(backButtonClicked),
for:.touchUpInside)
//Label - Title
let titleLabel = UILabel(frame:CGRect(x: width * 0.3, y: 13, width: width * 0.55, height: 40))
titleLabel.text = "Favorites"
titleLabel.contentMode = UIViewContentMode.center
//include all in view
topBar.addSubview(titleLabel)
topBar.addSubview(backBtn)
containerView.addSubview(topBar)
有没有一种方法可以让我不用UINavigationBar或设置状态栏就可以做到这一点。您好,您也可以试试这个,
override var prefersStatusBarHidden: Bool {
return true
}
需要添加一个具有相同背景的视图,该背景与您在标题视图中设置的背景相同,并添加到容器父视图中。
请参考下面的代码
//Top Bar
let safeAreaView = UIView(frame:CGrect(x: 0,y: 0, width: width, height: 40))
safeAreaView.backgroundColor = UIColor.white
self.view.addSubview(safeAreaView)
let topBar = UIView(frame:CGRect(x: 0,y: 0, width: width, height: 60))
topBar.backgroundColor = UIColor.white
topBar.layer.shadowColor = UIColor.gray.cgColor
topBar.layer.shadowOffset = CGSize(width: 0, height: 3)
topBar.layer.shadowOpacity = 1
topBar.layer.masksToBounds = false
topBar.layer.shadowRadius = 8.0;
//ImageView - Back Button
let backBtn = UIButton(frame:CGRect(x: 25, y: 18, width: 18, height: 34))
let backBtnImage = UIImage(named: "back_button") as UIImage?
backBtn.setImage(backBtnImage, for: .normal)
backBtn.layer.masksToBounds = true
backBtn.addTarget(self,action:#selector(backButtonClicked),
for:.touchUpInside)
//Label - Title
let titleLabel = UILabel(frame:CGRect(x: width * 0.3, y: 13, width: width * 0.55, height: 40))
titleLabel.text = "Favorites"
titleLabel.contentMode = UIViewContentMode.center
//include all in view
topBar.addSubview(titleLabel)
topBar.addSubview(backBtn)
containerView.addSubview(topBar)
使用默认导航栏,这是最简单有效的方法使用默认导航控制器…阅读此安全区域布局指南是UIView的属性是否有一种不使用导航栏的方法。是否使用自定义视图而不是导航栏然后将自定义视图添加到导航栏