2013年4月11日

iOS6 AutoLayout Storyboard and compatible to iOS5

前陣子寫了「您的微新聞」和「下一班高鐵」iOS App,一開始是 iOS6 based,因為 iOS6 之後,有支援推播 (Push Notification) 以及社群分享(Social Share) 的功能,因為 iOS6 有支援 Facebook, Twitter, 變好寫很多。後來,有使用者說他還在用 iOS5,可能舊的機型,或者仍有 JB? 就試試支援一下 iOS5,但,有被整到 XD 記錄一下,免得忘了。

可是,真的有點想不管 iOS5 哩。。。又沒多少人 (<10%) ,就算支援,推播、分享又不能用 (煙~ )


 

一、iOS Deployment Target 要由原本 6.0 設成 5.0,如果有用 Cocoapods,pods project 也是要設。

螢幕擷取_13_4_4_下午11_46


 

二、將原本的 storyboard 拷貝一份,改成另一個,比如這裡的 MainStoryboard_iOS5.storyboard

螢幕擷取_13_4_7_下午8_56
以下這段做 storyboard 選擇的程式碼加到 AppDelegate.m 的

(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
     
#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v)  \
([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)

// Pick storyboard
if (!SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"6.0"))
{
// for 5.x
UIStoryboard *storyBoard;
storyBoard = [UIStoryboard storyboardWithName:@"MainStoryboard_iOS5" bundle:nil];
UIViewController *initViewController = [storyBoard instantiateInitialViewController];
[self.window setRootViewController:initViewController];
}

三、 接下來,就針對 MainStoryboard_iOS5 的部份來處理,比如將此 Storyboard 的 Autolayout 關掉,並將 Document Versioning  改成  5.0

螢幕擷取_13_4_7_下午8_55

 

四、將 ViewControl 的以下,「可能」要關掉 "Resize View from NIB,不太確定,要試試。

螢幕擷取_13_4_7_下午8_41

 

五、Subview 「可能」要關掉 "Autoresize Subviews",View Mode 也可能要改成 "Left",不太確定,也是要試試。

螢幕擷取_13_4_7_下午8_17


六、navigation view 的 toolbar 似乎也易於 iOS6 變成亂亂的。


螢幕擷取_13_4_8_下午4_21


以上,很多東西,我也還不熟,若你有類似的需求,就參考看看吧。不保證是對的 XD


註: My Current Environment (2013.04)

Xcode version: 4.6.1

Orignal From: iOS6 AutoLayout Storyboard and compatible to iOS5