我使用的Xcode 4.6,當我離開了iOS6的開發UISplitView應用程序我已經設計:如何設置iOS的6/7三角洲編程
現在我遷移到新的Xcode5,現在我有這個設計:
UINavigationBar的completelly重疊我的UISearchBar ...
利奧納丹告訴我有關使用iOS 6/7三角洲,但由於我創建並以編程方式添加我的UISplitViewControllers,
這可能不起作用我需要以編程方式設置iOS 6/7,但我不知道如何,我會欣賞的任何幫助
我使用的Xcode 4.6,當我離開了iOS6的開發UISplitView應用程序我已經設計:如何設置iOS的6/7三角洲編程
現在我遷移到新的Xcode5,現在我有這個設計:
UINavigationBar的completelly重疊我的UISearchBar ...
利奧納丹告訴我有關使用iOS 6/7三角洲,但由於我創建並以編程方式添加我的UISplitViewControllers,
這可能不起作用我需要以編程方式設置iOS 6/7,但我不知道如何,我會欣賞的任何幫助
在iOS 7中現在有擴展的邊緣,這就是導航欄與搜索欄重疊的原因。你可以設置self.edgesForExtendedLayout = UIRectEdgeNone;
這是UIVewControlelr屬性。 您也可以根據iOS的版本進行檢查,您可以根據設備中當前版本的iOS執行操作。
NSString *version = [[UIDevice currentDevice] systemVersion];
int ver = [version intValue];
if (ver < 7){
//iOS 6 work
}
else{
//iOS 7 related work
}
此外,您還可以使用NSFoundationVersionNumber
if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_6_1) {
// > iOS7
} else {
// <= iOS6
}
蘋果在iOS 7轉換指南中建議使用此方法。 – coverback
您可以創建一個萬客隆爲解決這個問題。 它對我很有用。
#define iOS7Delta (([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) ? 20 : 0)
如果視圖的嵌入在一個UINavigationController - 簡單地取消選中「半透明」爲根導航欄。
在故事板,選擇導航控制器場景, 未來選擇導航欄和在屬性檢查器(工具 - 4片) 勾去掉「半透明」
如果你想這樣做的代碼,你必須工作與框架。 'if(iOS7){view.frame = ...} else {view.frame = ...}' –
@PetroKorienev或者只是改變約束常量?這比更新幀更容易。 – Sulthan
OP不使用自動佈局,並在代碼中初始化其控制器。在代碼中添加約束並不比更新框架更容易。 –