我運行在iOS6的和iOS7相同的應用程序具有NavigationBar.It運行良好的iOS6的,但是在iOS7,所有的觀點是有點像它沒有考慮到導航條都沒有。IOS 7 UIView的框架問題
我曾嘗試更改模擬指標選項中的topbar屬性,但它不起作用。它在iOS6中考慮按鈕對NavigationBar的位置,但在iOS7中,它從屏幕頂部考慮它。
這是什麼原因?
在此先感謝。
我運行在iOS6的和iOS7相同的應用程序具有NavigationBar.It運行良好的iOS6的,但是在iOS7,所有的觀點是有點像它沒有考慮到導航條都沒有。IOS 7 UIView的框架問題
我曾嘗試更改模擬指標選項中的topbar屬性,但它不起作用。它在iOS6中考慮按鈕對NavigationBar的位置,但在iOS7中,它從屏幕頂部考慮它。
這是什麼原因?
在此先感謝。
您必須使用以下行修復它在你的觀點:它的iOS 7 UI轉換指南
中,如果你想改變佈局中使用edgesForExtendedLayout財產
例子中提到。
self.edgesForExtendedLayout = UIRectEdgeNone;
在這個答案的時候,iOS的7仍然是保密協議,所以這是不可能的編寫實際的解決方案。無論如何,我已經發布了一個只適用於註冊開發者的幫助鏈接。
====原貼:====
閱讀iOS 7 Transition Guide。其章節「更新用戶界面」解釋瞭如何解決您的問題。
RTFM =下的一票! – TheRonin
在我發佈iOS 7時,仍然處於NDA之下,所以唯一可能的幫助是指向只有註冊開發者才能訪問的官方指南。 – Tafkadasoh
@Tafkadasoh我瞭解你的困境,並感謝你的努力,無論NDA如何。我會(恭敬地)建議,如果你在原始答案中提到了NDA,那麼你會得到更好的服務,然後詳細說明在哪裏找到問題的答案,即:「這仍然在NDA之下;但是,它被記錄在iOS7轉換指南的第NNN頁上「。這樣,你會創建一個更直接有用的答案,而不是打開自己的倒計時。 –
在「的iOS 7 UI轉換指南」用於佈局和外觀一個還提到 - 在iOS7中,視圖控制器使用完整的屏幕布局。
如果我們想在視圖顯示在導航欄下面的位置,可以修改UIViewController的edgesForExtendedLayout這個屬性來實現的。
edgesForExtendedLayout是一種類型UIExtendedEdge屬性,指定的邊緣的方向上延伸。
因爲iOS7鼓勵全屏幕布局,它的默認值是很自然的是UIRectEdgeAll,四周邊緣都延伸,也就是說,如果連視圖的導航欄,的TabBar下,那麼該視圖將延伸覆蓋到周邊地區。
如果我們做如下設置視圖,那麼該視圖將不會延長對這些酒吧的後面,所以標籤就出來了。 查看源打印
self . edgesForExtendedLayout = UIRectEdgeNone ;
在iOS系統7,視圖控制器使用全畫面打印格式。
if([UIViewController instancesRespondToSelector:@selector(edgesForExtendedLayout)])
self.edgesForExtendedLayout=UIRectEdgeNone;
是的,它適合我。但我的應用程序有Tabbacontroller alos。其他的viewcontroller工作正常。在Tabbar視圖控制器中發佈。假設我有5個選項卡。 1.當我點擊選項卡(列表屏幕打開)它工作正常,當我點擊列表細節打開罰款。直到它的工作正常2.當我點擊標籤2(另一個列表)打開。那個時候當我點擊tab1比細節屏幕主視圖框架減少到64px。我試圖強行增加,但不工作..在這種情況下我能做些什麼? – Hitarth
if([self respondsToSelector:@selector(edgesForExtendedLayout)])
[self setEdgesForExtendedLayout:UIRectEdgeBottom];
我也有類似的問題,我發現,如果你關掉半透明導航欄的意見,將下拉相同,因爲他們在iOS6的那樣。
self.navigationController.navigationBar.translucent = NO;
這太棒了!節省了我幾個小時的工作。謝謝。 –
是的,它適合我。但我的應用程序有Tabbacontroller alos。其他的viewcontroller工作正常。在Tabbar視圖控制器中發佈。假設我有5個選項卡。 1.當我點擊選項卡(列表屏幕打開)它工作正常,當我點擊列表細節打開罰款。直到它的工作正常2.當我點擊標籤2(另一個列表)打開。那個時候當我點擊tab1比細節屏幕主視圖框架減少到64px。我試圖強行增加,但不工作..在這種情況下我能做些什麼? – Hitarth
我覺得在設置這個屬性前最好檢查一下:'[selfrespondsToSelector:@selector(edgesForExtendedLayout)]' – jianpx