iOS 7 - 狀態欄與視圖重疊我有一個ViewController在里面UINavigationcontroller,但導航欄是隱藏的。當我在iOS 7上運行應用程序時,狀態欄顯示在我的視圖之上。有辦法避免這種情況嗎?我不想編寫任何特定于操作系統的代碼。我試著設置View controller-based status bar appearance到NO,但它并沒有解決這個問題。
3 回答

浮云間
TA貢獻1829條經驗 獲得超4個贊
如果您根本不想要任何狀態欄,則需要使用以下數據更新plist:要在plist中執行此操作,請添加以下兩個設置:
<key>UIStatusBarHidden</key><true/><key>UIViewControllerBasedStatusBarAppearance</key><false/>
在iOS 7中,您需要設計一個覆蓋透明狀態欄的應用程序。例如,請參閱新的iOS 7天氣應用程序。

不負相思意
TA貢獻1777條經驗 獲得超10個贊
這是UIViewController
iOS 7上的默認行為。視圖將全屏顯示,這意味著狀態欄將覆蓋視圖的頂部。
如果你有一個UIViewController
內部的UINavigationController
和的導航欄是可見的,你可以有下面的代碼在你的viewDidLoad
或有背景圖片的導航欄做的伎倆。
self.edgesForExtendedLayout = UIRectEdgeNone;
如果您隱藏了navigationBar,則必須通過移動20個點來調整所有UIView元素。我沒有看到任何其他解決方案。使用自動布局會有所幫助。
以下是用于檢測iOS版本的示例代碼,如果您想要向后兼容。
NSUInteger DeviceSystemMajorVersion() { static NSUInteger _deviceSystemMajorVersion = -1; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ NSString *systemVersion = [UIDevice currentDevice].systemVersion; _deviceSystemMajorVersion = [[systemVersion componentsSeparatedByString:@"."][0] intValue]; }); return _deviceSystemMajorVersion;}
- 3 回答
- 0 關注
- 998 瀏覽
添加回答
舉報
0/150
提交
取消