2013-08-22 103 views
4

我想製作一個應用程序,它使用導航欄,但僅用於顯示標題和一些按鈕(它使用的是一個vie容器)。我想導航欄,以「融合」與狀態欄,這樣讓導航欄重疊iOS 7中的狀態欄

Navigation Bar and Status Bar

但是當我使用一個通用的視圖控制器,將一個導航欄,它只是看起來是這樣的:

Without

有沒有辦法做到這一點?

回答

3

我發現了針對這個特定問題的解決方案。將導航欄的半透明屬性設置爲NO:

self.navigationController.navigationBar.translucent = NO; 
0

不確定這是否會解決您的問題,但您可以嘗試我所做的。

我在視圖控制器的右側菜單中的「模擬Metics」>頂欄>「不透明導航欄」同樣的問題

0

的UINavigationController會改變其UINavigationBar的高度要麼44點或64點,這取決於相當奇怪和沒有記錄的一組約束。如果UINavigationController檢測到其視圖框架的頂部與其UIWindow的頂部可視連續,則它將繪製其導航欄,其高度爲64點。如果它的視圖的頂部與UIWindow的頂部不連續(即使僅關閉一個點),那麼它將以「傳統」方式繪製其導航欄,高度爲44點。即使在應用程序的視圖控制器層次結構中存在多個子級,該邏輯也由UINavigationController執行。沒有辦法阻止這種行爲。

完整說明here

+0

我不想使用UINavigation控制器,只是一個普通的視圖控制器。在那裏也可以做到嗎? – Miterion

0
  • viewcontroller.h文件中創建導航欄IBOutlet中

    @property (weak, nonatomic) IBOutlet UINavigationBar *navBar;

  • 可以在viewDidLoad中做到以下爲

    的UIView * addStatusBar = [[UIView的頁頭] INIT] ;

    //用設備寬度繪製狀態欄 addStatusBar.frame = CGRectMake(0,-20,self.view.frame.size.width,20);

    //設置背景顏色到狀態欄

    addStatusBar.backgroundColor = [的UIColor colorWithRed:24.0/255。綠色:二百五十五分之二十四。藍色:24.0/255。阿爾法:1];

    [self.view addSubview:addStatusBar];

    //將你的狀態欄添加到你的文件中聲明的UINavigationBar * navBar中.h [self。navBar addSubview:addStatusBar];

0
navigationController.navigationBar.clipsToBounds = YES; 

爲了UINavigationBar根據其clipsToBounds必須設置爲NO(這是默認值)狀態欄延長其背景。確保你不要嘲笑它。

解決方案簡單: -

navigationController.navigationBar.clipsToBounds = NO;