標籤:
第一種方法:修改BaseSDK
XCode5的預設BaseSDK是iOS7,所以要修改成工程檔案建立時的BaseSDK。但是XCode5中預設只帶有iOS7的SDK,所以要想能做到更改SDK,我們就要添加舊的SDK。
1.從蘋果開發人員中心下載舊版本XCode,https://developer.apple.com/downloads/index.action?name=Xcode
2.從中提取出iPhoneOS SDK 和iPhone Simulator SDK,前者所在的位置是XCode應用程式套件組合中的路徑是Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs,後者是Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs
3.假設我們已經安裝了XCode5,那麼我們在應用程式中找到XCode.app右擊顯示包內容,依此 Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs 路徑開啟,把提取出的iPhoneOS SDK複製進去。模擬器SDK的拷貝也同理。
4.重啟XCode,這個時候就可以設定Base SDK了
5.假如設定成iOS6,那麼應用就算在運行iOS7的裝置上也是呈現iOS6的特性。舉個例子,倘若此應用在需要輸入的時候彈出的鍵盤是iOS6樣式的並不是iOS7樣式的。
6.可以參考http://github.kimziv.com/blog/2013/09/22/how-to-use-older-base-sdks-in-xcode5/
第二種方法:手動代碼設定各個UI組件的frame
1.判斷當前裝置的系統
#define iOS7 ([[[UIDevice currentDevice]systemVersion] floatValue] >= 7.0)?YES:NO
2.再根據不同的系統設定Frame
第三種方法:改變window
1.需要在Info.plist設定檔中,增加鍵:UIViewControllerBasedStatusBarAppearance,並設定為YES
2.在AppDelegate.m中
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;
添加
第四種方法:對每個UIViewController的.m檔案中編寫代碼進行設定(推薦)
推薦使用這種方法
在iOS7當中未使用UINavigationController介面相對iOS6會上移20px,使用了會上移64px。簡單的說導覽列和狀態列預設都會覆蓋下面的頁面,使用下面的方法就可以避免
if ([[[UIDevice currentDevice]systemVersion]floatValue]>=7.0) {
self.edgesForExtendedLayout = UIRectEdgeNone;
}
iOS7的介面上移問題