舊工程適配iOS 6和iPhone 5的一些故事

2021-09-06 08:47:00 字數 1901 閱讀 9832

蘋果每發布乙個系統,都夠開發者忙活一陣的,更新xcode適配新系統:像ios4支援retina需要@2x的圖;像ios5不支援udid;像現在的ios6和iphone5要面對的下面的一堆問題。

不被支援的硬體裝置包括: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").

因為喜歡用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喲~

預設的話,如果你的介面上包含scrollview/tableview的話,這個介面基本上是不用改的,因為中間部分會自動拉伸。如果不包含這兩個全屏的控制項的話,怕是要自已再新增乙個專門針對iphone5的xib了。辦法很簡單,新建乙個xib檔案,將裡面view的size設定成retina 4 full screen就可以了。上面已經提到怎麼判斷iphone5了,怎樣讀取不同的xib檔案不用上**了吧?

(ios5的時候就出過一次狀況,這次又來)

要深入理解這個問題,還需要您自已親自做一些實驗,ios6取消了乙個api,增加了兩個api,但是這一去一加滿足不了我的情況:應用在所有的介面都是豎屏,只在乙個螢幕是橫屏。就這乙個情況要實現費了我半天的功夫。只說一下我最後怎麼實現的。

首先:這橫屏的xib裡面的view就是橫的

其次:螢幕適應只支援橫屏

1

2

3

- (

bool

)shouldautorotatetointe***ceorientation

:(uiinte***ceorientation

)inte***ceorientation

第三:在這個view是present出來的

第四:viewdidload裡隱藏狀態列

1

2

3

4

5

6

- (

void

)viewdidload

} 1

2

3

4

5

6

7

8

9

10

11

12

13

- (

void:(

bool

)animated

else

} ];

}

如何去舊工程適配iOS6和iPhone5

蘋果每發布乙個系統,都夠開發者忙活一陣的,更新xcode適配新系統 像ios4支援retain需要 2x的圖 像ios5不支援udid 像現在的ios6和iphone5要面對的下面的一堆問題。1.新增retina 4 launch image,執行工程的時候會主動提示你。這時候直接點add就好了。會...

如何去舊工程適配iOS6和iPhone5

蘋果每發布乙個系統,都夠開發者忙活一陣的,更新xcode適配新系統 像ios4支援retain需要 2x的圖 像ios5不支援udid 像現在的ios6和iphone5要面對的下面的一堆問題。1.新增retina 4 launch image,執行工程的時候會主動提示你。這時候直接點add就好了。會...

關於IOS6的適配問題

現在大部分使用afnetworing開源庫的應用大部分是無法支援ios6的,是因為在afnetworking2.0 之後的版本使用了ios6之後棄用的方法。如果要適配ios6 除了其他方法外,需要改動網路開源庫,比如將afnetworing 改到2.0 包括 之前的版本,或者使用asi做網路請求部分...