蘋果每發佈一個系統,都夠開發者忙活一陣的,更新xcode適配新系統:像iOS4支持Retina須要@2x的圖;像iOS5不支持udid;像如今的iOS6和iPhone5要面對的下面的一堆問題。 api
這時候直接點Add就行了。會默認添加一張Default-568h@2x.png的黑圖:
不添加的話,程序運行起來會上下有黑邊兒。
添加完之後的效果
這個地方再囉嗦兩句:當透明第一次在羣裏說要添加這麼一張圖的時候,個人第一反應是:那不是程序啓動的時候會有一張黑圖麼?而個人程序是不須要啓動圖的。而當自已添加這張圖的時候才發現,這個擔憂是多餘的。估計蘋果自已作了什麼優化,判斷出來是黑圖的時候就直接給跳過了。 xcode
在使用背景色的時候,我最喜歡用的一個系統自帶的顏色就是:」Group Table View Background Color」。如今既然這個顏色消失了,換個別的顏色就好嘍。 app
咱們知道添加圖片的時候,會直接添加到工具裏,這時候若是有多個Target的時候,直接將Default-568h@2x.png文件,拖拽到相應的」Copy Bundle Resources」裏就行了。
再有要注意的就是多個Target在模擬器運行的時候,如今不像原來那麼方便,直接切換配置文件就能夠運行了。須要在測試不一樣Target表示的時候,除了切換配置文件還須要清空模擬器,否則很差使喲~ 工具
不被支持的硬件設備包括:iPod 2nd gen, iPhone 3G 或更老的iPhone
例如我打包時的錯誤提示就是: 測試
1 2 |
warning: iOS deployment targets lower than 4.3 are not supported (current IPHONEOS_DEPLOYMENT_TARGET = "4.0", ARCHS = "armv7").
(null): iPhone/iPod Touch: application executable is missing a required architecture. At least one of the following architecture(s) must be present: armv6 (-19033) |
由於喜歡用Block,因此我開發的東東,通常最低都支持iOS4.0,看來是蘋果逼着開發者和用戶升級啊。 優化
1 |
#define iPhone5 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 1136), [[UIScreen mainScreen] currentMode].size) : NO)
|
用時候直接 動畫
1 |
if (iPhone5) ooxx
|
就能夠了。
另外,若是代碼寫界面的話,在iPhone5下View的高是568喲~ ui
默認的話,若是你的界面上包含scrollview/TableView的話,這個界面基本上是不用改的,由於中間部分會自動拉伸。若是不包含這兩個全屏的控件的話,怕是要自已再添加一個專門針對iPhone5的xib了。辦法很簡單,新建一個xib文件,將裏面view的size設置成Retina 4 Full Screen就能夠了。上面已經提到怎麼判斷iPhone5了,怎樣讀取不一樣的xib文件不用上代碼了吧? spa
(iOS5的時候就出過一次情況,此次又來)
要深刻理解這個問題,還須要您自已親自作一些實驗,iOS6取消了一個api,增長了兩個api,可是這一去一加知足不了個人狀況:應用在全部的界面都是豎屏,只在一個屏幕是橫屏。就這一個狀況要實現費了我半天的功夫。只說一下我最後怎麼實現的。
首先:這橫屏的xib裏面的view就是橫的
其次:屏幕適應只支持橫屏 code
1 2 3 |
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{
return UIInterfaceOrientationIsLandscape(interfaceOrientation); } |
第三:在這個view是present出來的
第四:viewDidLoad裏隱藏狀態欄
1 2 3 4 5 6 |
- (void)viewDidLoad{
if (IOSSystemVersion >= 5.0) { //5.0及之後,不整這個,界面錯位 整這個帶動畫的話,容易看到一個白頭 [[UIApplication sharedApplication] setStatusBarHidden:YES]; } } |
第五:viewWillAppear自已將view旋轉90度
1 2 3 4 5 6 7 8 9 10 11 12 13 |
- (void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; [UIView animateWithDuration:0.0f animations:^{ [self.view setTransform: CGAffineTransformMakeRotation(M_PI / 2)]; if (iPhone5) { self.view.frame = CGRectMake(0, 0, 568, 320); } else{ self.view.frame = CGRectMake(0, 0, 480, 320); } }]; }
|