2014-05-15 108 views

回答

3

personal-hotspot是,notification被調用時,抓住它,並改變佈局,只要你想

[[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(statusBarFrameWillChange) 
               name:UIApplicationWillChangeStatusBarFrameNotification 
               object:nil]; 

個人熱點上,狀態欄。的高度是40

個人熱點關閉時,狀態欄。身高是20

+0

這不應該需要。處理較高的狀態欄與在打電話時使用應用程序無異。正確書寫的用戶界面會自動調整以適應高度變化,而無需收聽此通知。 – rmaddy

+0

如何?如果我使用從圖像頂部到頂部佈局指南的約束從頂部向下滑動圖像。當我將常量設置爲0時,當我打電話時,圖像部分隱藏。 –

0

在Appdelegate.m文件中添加通知方法,並檢查狀態欄框是否已更改,如果更改了框架。

  • (無效)申請:(UIApplication的*)應用程序didChangeStatusBarFrame:(的CGRect)oldStatusBarFrame {

}

0

我希望這可以幫助別人。

我在處理舊應用程序時看到了類似的問題。它沒有自動佈局,並且在scrollview中有很多子視圖。多個類視圖放在它上面。 我意識到了根本原因。 未啓用熱點並且假設View控制器視圖設置爲原點(0,0)。現在,如果你啓用熱點。狀態欄高度更改爲40,self.view原點轉換爲(0,20)。因此,如果使用self.view.frame初始化每個子視圖幀,則會向下移動20 px。要解決這個問題。我沒有洗牌整個代碼。相反,我把變化

-(void)viewDidLayoutSubviews(){} /**method. 

我明確設置子視圖爲原點(0,0)。 然後,它的工作,而不是通過啓用任何狀態欄更改通知。如果您的內容正確放置。它會自動調整。

相關問題