日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ios7适配

發布時間:2024/3/7 编程问答 59 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ios7适配 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一.前言

iOS7可以說是蘋果一次革命性的變化,這次變化也足夠廣大iOS開發者們苦苦折騰一陣子了。但是,開發還是要繼續,支持iOS7是遲早要解決的問題。

這次的變化在布局上的體現有:view默認是全屏模式,即狀態欄statusbar不占內容視圖的尺寸,變為全透明的覆蓋在內容視圖上層。所有的bar(navigation bar, tool bar, search bars 與scope bars) 都是半透明的,默認也是不占用內容視圖的尺寸的。

所以,iOS7之前的工程,在不修改的情況下,必然會出現狀態欄覆蓋在內容視圖上的情況,有可能會出現導航條等覆蓋在界面上的情況。這里重點解決這兩個問題。

二.每個應用必須做的事情

1.????下載和安裝最新的XCode5

2.????解決狀態欄和導航欄的問題

1)使用xib或者storyboard布局

a)??????沒有使用UINavigationControler

用xcode5打開xib,在File inspector中,“Opens in”選擇“Default(5.0)”,如下圖。

然后“View as”選擇“iOS6.1 and Earlier”,如下圖。

然后針對xib中的控件,調整增量“iOS 6/7 Deltas”的Y值。增量的意思是如果運行在ios7的模式下,就使其坐標增加的量,如果是6或更早的,就是直接使用上面的坐標(Origin處設置的值)。

說明:“View as”選項表示當前編輯的xib是在哪個版本下面的效果。如果選擇”iOS6.1 and Earlier”,那么Deltas值表示在ios7下面的增量。因為ios6下面是從{0,0}點開始布局的,所以在iOS7下要想不被status bar覆蓋,需要從{0,20}開始布局,即Deltas為20。反之,如果View as為默認的”iOS7.0 and Later”,那么Deltas為-20。

b)??????使用了UINavigationControler,且隱藏navigationBar

針對UINavigationControler中所有viewcontroller.view的xib,使用同a)中的方法修改設置。

c)??????使用了UINavigationControler,且顯示navigationBar

這種情況設置navigationBar.translucent = NO 即可。

2)使用純代碼布局

使用純代碼布局,只能在代碼中手動修改origin.y值和height。

具體做法是,判斷當前設備的系統版本,如果是7.0及以上,則將UIViewController控制的view的frame.origin.y增加20像素即可。特別的,如果是根視圖,如果使用window.rootViewController = firstViewController的方式,則firstView中各個元素都需要調整origin.y的值;如果使用[windowaddSubView:firstView]的方式,則只需調整firstView。

?

為了簡化代碼,可以將判斷系統版本和調整frame的方法在prefix.pch中定義為宏,例如,在MyProject-Prefix.pch中定義IOS_7和IOS6_7_DELTA(V,X,Y,W,H)兩個宏:

#define IOS_7 ([[[UIDevicecurrentDevice] systemVersion] floatValue] >= 7.0f)

#define IOS6_7_DELTA(V,X,Y,W,H) if(IOS_7) {CGRect f = V.frame;f.origin.x += X;f.origin.y += Y;f.size.width +=W;f.size.height += H;V.frame=f;}

然后,例如在SubViewController的viewDidload方法中這樣調整:

if (IOS_7) {

?????????? IOS6_7_DELTAself.view,0,20,0,-20;?

}

如果是iOS7之前的版本是全屏布局的,height需要-20的增量,否則不需要。

也可以定義一個view controller父類,在父類中處理,需要調整的子視圖控制器繼承該父類。

3.????更新app icon

?????????? 在iOS7下,iPhone應用的高分辨率appicon尺寸是120 x 120 像素,iPad應用的高分辨率app icon是152 x 152像素(見下表)。iOS7下Spotlight search results icon標準和高分辨率尺寸分別是40 x 40和80 x 80 (Info.plist配置中非必須項,官方建議設置)。

?

Icon

設備類型

iOS6及之前

iOS7及之后

標準(像素)

高分辨率(@2x) 像素

標準(像素)

高分辨率(@2x) 像素

App Icon (required)

iPhone

57 x 57

114 x 114

60 x 60

120 x 120

App Icon (required)

iPad

72 x 72

144 x 144

76 x 76

152 x 152

?

4.????更新啟動頁圖片尺寸

如果之前的啟動頁圖片(launch image)不包含狀態欄的高度,則launch image高度都應該增加20像素(對于iPhone, Default-568h@2x.png640 x 1136像素,Default@2x.png640 x 960像素,Default.png是320 x 480像素; 對于iPad,豎屏分別是768 x1024 和1536 x 2048像素, 橫屏分別是 1024 x 768 和 2048 x 1536像素)。

5.????支持高清顯示和iPhone5

如果之前還沒做這些,那么,現在是時候了。

三.每個應用都應該做的事情

1.??????檢查app中寫死的UI數值,比如size和position,用系統提供的動態數值替換它們。

2.??????檢查app中使用UIKit的地方,看尺度和風格發生變化的控制器和視圖是否對布局和外觀產生了影響。比如,開關更加寬了,組合式表格(grouped tables)變成通欄的了,進度指示條變成了非常細的小條。

3.??????調整App的UI風格,例如嘗試無邊框的按鈕,慎用投影、漸變、浮雕效果。因為iOS 7的美學重視平緩、分層——盡量少使用讓UI元素看起來擬實的視覺效果。

4.??????必要的話,將app升級到iOS 6中推薦的最佳實踐方法(如:Auto Layout和StoryBoard)并確保app不使用廢棄的API。

?

四. 參考資料

1.???? iOS 7 UI Transition Guide

https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/TransitionGuide/index.html#//apple_ref/doc/uid/TP40013174

中文版http://mued.sohu.com/2013/06/ios-7-ui-transition-guide/

2.????iOS Human Interface Guidelines

https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/IconMatrix.html#//apple_ref/doc/uid/TP40006556-CH27-SW1

3.???? IOS7狀態欄StatusBar官方標準適配方法

http://blog.csdn.net/rhljiayou/article/details/12029927

4.????適配iOS7開發

http://www.ifun.cc/blog/2013/09/28/gua-pei-ios7kai-fa/

5.????Developer’s Guide to the iOS 7Status Bar

http://www.doubleencore.com/2013/09/developers-guide-to-the-ios-7-status-bar/

總結

以上是生活随笔為你收集整理的ios7适配的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。