【发布时间】:2019-11-12 07:09:25
【问题描述】:
我想重新定位 UINavigationBar。所以我用代码给了一个新的值,但它并没有改变。
@IBOutlet var headerBar: UINavigationBar!
let screenHeight = UIScreen.main.bounds.size.height
override func viewDidLoad() {
super.viewDidLoad()
if screenHeight > 667 {
headerBar = UINavigationBar(frame: CGRect(x: 0, y: 54, width: headerBar.frame.width, height: headerBar.frame.height))
} else {
headerBar = UINavigationBar(frame: CGRect(x: 0, y: 40, width: headerBar.frame.width, height: headerBar.frame.height))
}
}
我该如何解决这个问题?
我在主线程上运行,但没有任何变化。
@IBOutlet var headerBar: UINavigationBar!
let screenHeight = UIScreen.main.bounds.size.height
override func viewDidLoad() {
super.viewDidLoad()
DispatchQueue.main.async {
if self.screenHeight > 667 {
self.headerBar = UINavigationBar(frame: CGRect(x: 0, y: 54, width: self.headerBar.frame.width, height: self.headerBar.frame.height))
} else {
self.headerBar = UINavigationBar(frame: CGRect(x: 0, y: 40, width: self.headerBar.frame.width, height: self.headerBar.frame.height))
}
}
}
从主故事板查看的标题栏区域
【问题讨论】:
-
在主线程中调用你的条件。否则调用 viewDidAppear
-
它已经在主线程中了。 (在
viewDidLoad:方法中) -
@Anbu.Karthik 我在主线程上运行但没有任何变化。
-
@Mahendra 为什么不改?
标签: ios swift view uinavigationbar