2017-10-16 98 views
3

我開發了一款不帶autoLayoutinterface-builder的應用程序,全部由代碼完成。它在所有的iPhones都可以運行,除了iPhone X,其中頂部酒吧停留在中間的新黑色物品下。iPhone X狀態欄高度

有可能通過代碼獲得該高度,所以我可以將我的Navigationbar高度降低並且所有運行正常?

我看到的解決方案,他們使用自動佈局。

我只是想獲得距離來接班下來..

回答

9

在我斯威夫特的應用程序,我得到了狀態欄的frame

斯威夫特:UIApplication.shared.statusBarFrame

的Objective-C: [UIApplication sharedApplication].statusBarFrame

這是一個CGRect,所以你可以通過對size.height做到這一點。

[UIApplication sharedApplication].statusBarFrame.size.height 
+0

感謝您的回覆!有用。還有一件事,你怎麼知道頁腳安全高度?屏幕的曲線部分... – F79

+0

以及隱藏時如何獲取狀態欄高度? – F79

1

您可以隨時帶或不隱藏狀態欄獲取狀態欄高度:所以,乾脆,你可以在Objective-C這樣做

UIApplication.shared.keyWindow!.safeAreaInsets.top 

,並在主屏幕指示器

UIApplication.shared.keyWindow!.safeAreaInsets.bottom 

如果它是景觀價值將改變

safeAreaLayoutGuide也有