iOS7設(shè)計(jì)指南
本文最新PDF格式文檔下載:?http://vdisk.weibo.com/s/InBpB(2013年7月3日更新)
過(guò)渡前的準(zhǔn)備
重要:由于iOS7還未最終發(fā)布,該文檔的部分內(nèi)容還會(huì)繼續(xù)修改。
開(kāi)始之前的工作
iOS 7引入了許多用戶(hù)界面上的改變,比如無(wú)邊框的按鈕,透明操作欄,全屏視圖控制器布局。使用Xcode 5可以創(chuàng)建iOS 7項(xiàng)目,并使用模擬器一窺iOS 7用戶(hù)界面的變化。 例如,示例程序TheElement在iOS6和iOS7模擬器上分別看起來(lái)分別是這樣的。
iOS7模擬器上的樣子? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? iOS6模擬器上的樣子
注意:iOS 7 beta2 現(xiàn)已發(fā)布,支持iPad
對(duì)于這樣結(jié)構(gòu)的程序,你甚至不用更新你的應(yīng)用程序,但在開(kāi)始之前還是有幾件事要考慮一下。當(dāng)你操作內(nèi)置的應(yīng)用程序時(shí),你會(huì)感覺(jué)到iOS 7的變化既微妙又深刻。熟悉的UI元素非常易于辨認(rèn),但它們看起來(lái)和原來(lái)變化很大。接近真實(shí)的虛擬觸摸變得更加柔和精妙,同時(shí)動(dòng)態(tài)效果的真實(shí)性得到了增強(qiáng)。
注意:iOS 7上所有的UI元素看起來(lái)和原來(lái)區(qū)別很大,并且提供了許多新功能,但是你所熟悉的UIKit?API基本上沒(méi)有變化太多。
隨著你探索的深入,會(huì)認(rèn)識(shí)到iOS 7的主要主題:
- 順從。界面的作用是幫助用戶(hù)理解內(nèi)容、和內(nèi)容交互,而不是與內(nèi)容競(jìng)爭(zhēng)。
- 明晰。每個(gè)字號(hào)的字體都清晰可辨,icon精確易懂,裝飾元素恰如其分,對(duì)于功能的精確聚焦是設(shè)計(jì)驅(qū)動(dòng)力。
- 深度。通過(guò)可視化的層、逼真的動(dòng)畫(huà),加深用戶(hù)的愉悅和理解。
因?yàn)閕OS體驗(yàn)發(fā)生了根本而普遍的變化,iOS 7為大家提供了一個(gè)珍貴的機(jī)會(huì):重新審視你的app的核心目的是什么,為用戶(hù)提供什么樣的功能。盡管你現(xiàn)在可能還沒(méi)準(zhǔn)備好利用這個(gè)機(jī)會(huì),當(dāng)你將app適配到iOS 7的時(shí)候,請(qǐng)記住這一點(diǎn)。(當(dāng)你準(zhǔn)備好重新審視你的app設(shè)計(jì)或者開(kāi)始一個(gè)新項(xiàng)目的時(shí)候,請(qǐng)參閱《Designing for iOS 7(為iOS 7而設(shè)計(jì))》)
了解app的特征
不論你準(zhǔn)備重新設(shè)計(jì)app,或者只是改進(jìn)設(shè)計(jì),你都需要知道你的app的特質(zhì)會(huì)對(duì)重新設(shè)計(jì)過(guò)程產(chǎn)生影響。首先請(qǐng)自問(wèn)如下2個(gè)問(wèn)題,它們能幫助你思考過(guò)渡的策略:
你使用Auto Layout來(lái)設(shè)計(jì)app了嗎?
如果你使用了Auto Layout來(lái)布局的話(huà),你的工作量就少了很多。在Xcode 5中,Auto Layout會(huì)幫助app自動(dòng)調(diào)整新的UI元素度量,并且對(duì)字號(hào)自動(dòng)動(dòng)態(tài)調(diào)整。Auto Layout對(duì)你從iOS 6升級(jí)到iOS 7,和同時(shí)支持兩個(gè)版本操作系統(tǒng)非常有幫助。 如果你沒(méi)有使用Auto Layout,現(xiàn)在開(kāi)始學(xué)著使用吧,特別是當(dāng)你需要支持app的多個(gè)版本的時(shí)候。如果使用手動(dòng)布局或者區(qū)分性布局技術(shù)的話(huà)會(huì)比較麻煩,就需要時(shí)刻考慮確保字號(hào)改變的時(shí)候造成的布局變化是否合適。
你的app需要支持iOS 6嗎?
記住很多iOS用戶(hù)很可能在較短時(shí)間內(nèi)升級(jí)他們的設(shè)備到iOS 7,他們不希望看到自己喜歡的app在iOS 7上表現(xiàn)得糟糕。 你也可能出于商業(yè)原因需要考慮對(duì)iOS 6的支持,這時(shí)最佳的方案仍然是將app先升級(jí)到支持iOS 7,然后盡可能地去將設(shè)計(jì)的變化運(yùn)用到app的iOS 6版本。這個(gè)過(guò)程的處理細(xì)節(jié)請(qǐng)參考“支持iOS 6系統(tǒng)”(第7頁(yè))。 接下來(lái)要檢查app是依照什么樣的方式定制的。不同定制方式影響了工作量。 定制分為三種類(lèi)型: 標(biāo)準(zhǔn)型(Standard):?app中只包含了UIKit中所提供的標(biāo)準(zhǔn)UI元素。 自定義型(Custom):?app中完全使用了UIKit中沒(méi)有的自定義UI元素。 混合型(Hybrid):?既使用了標(biāo)準(zhǔn)元素,也用了自定義元素(包括使用UIKit著色和外表自定義API定制的自定義的標(biāo)準(zhǔn)元素)。 對(duì)標(biāo)準(zhǔn)型app。需要確認(rèn)視覺(jué)和交互設(shè)計(jì)在iOS 7環(huán)境下時(shí)是否依然合適。如果你決定保持原有的布局和交互方式,主要的工作就是進(jìn)行微調(diào),確保app可以正常處理系統(tǒng)全局的手勢(shì)。 自定義型。這對(duì)工作量要求就比較高了。如果當(dāng)前的UI和體驗(yàn)依然合適的話(huà),那要做的事情還不算多。相反,如果app的個(gè)性和體驗(yàn)與iOS 7相差迥異,那為了迎合用戶(hù)的習(xí)慣,你可能就需要做比較多的工作了。 混合型。根據(jù)其使用自定義控件的多少與其和標(biāo)準(zhǔn)控件綁定情況不同,工作量也有所區(qū)別。重新審視混合型app的時(shí)候,還要確保自定義部分和標(biāo)準(zhǔn)部分依然可以一起正常工作。
注意:如果你的app以自定義的方式模擬了iOS 6的傳統(tǒng)UI,那就會(huì)需要花大力氣修改了,否則它會(huì)看起來(lái)非常陳舊。
過(guò)渡工作的范圍
了解你的app特征及其定制方式,能讓你大概知道怎么進(jìn)行過(guò)渡。參考下面的清單,填充上自己項(xiàng)目的細(xì)節(jié),來(lái)了解整個(gè)過(guò)渡工作的范圍。
強(qiáng)制每個(gè)app做的事情
- 更新app的icon,在iOS 7中,app的圖標(biāo)尺寸是120 x 120像素(高分辨率下)。
- 更新app的載入圖像,如果原有的載入圖像中不包含頂欄部分的話(huà),補(bǔ)充上狀態(tài)欄部分的圖像。
- 請(qǐng)支持Retina屏和iPhone 5的屏幕尺寸。(譯者注:不支持就不能更新了)
-
建議每個(gè)app做的事情
- 確保app的內(nèi)容在透明UI元素(比如透明的bar和透明鍵盤(pán))和透明的系統(tǒng)狀態(tài)欄下依然可辨識(shí)。在iOS 7中,視圖控制器統(tǒng)一采用了全屏視圖(參考第11頁(yè)“使用視圖控制器”)。
- 重新設(shè)計(jì)自定義bar的icon。iOS 7下,bar上的按鈕圖標(biāo)更加輕巧,風(fēng)格也有變化。
- 拿掉按鈕的背景圖片, 重視現(xiàn)有的按鈕外觀,嘗試無(wú)邊框的按鈕。
- 檢查app中寫(xiě)死的UI數(shù)值,比如size和position,用系統(tǒng)提供的動(dòng)態(tài)數(shù)值替換它們。使用Auto Layout幫助你的app完成相應(yīng)布局變化下的響應(yīng)。(如果你這個(gè)菜鳥(niǎo)連Auto Layout都不知道是什么的話(huà),請(qǐng)自行閱讀Cocoa Auto Layout Guide)
- 檢查app中使用UIKit的地方,看尺度和風(fēng)格發(fā)生變化的控制器和視圖是否對(duì)布局和外觀產(chǎn)生了影響。比如,開(kāi)關(guān)更加寬了,組合式表格(grouped tables)變成通欄的了,進(jìn)度指示條變成了非常細(xì)的小條。更詳細(xì)的UI元素變化,請(qǐng)參考21頁(yè)的“操作欄和欄上的按鈕”,第26頁(yè)的“控件”,第19頁(yè)的“內(nèi)容視圖”,第32頁(yè)的“臨時(shí)視圖”。
- 使用動(dòng)態(tài)的字體。在iOS 7中,用戶(hù)可以自由調(diào)整app中的字號(hào)大小。如果開(kāi)發(fā)者使用動(dòng)態(tài)字體的話(huà),用戶(hù)在系統(tǒng)中設(shè)定自定義字號(hào)的時(shí)候,app的字體也會(huì)發(fā)生相應(yīng)的變化。更多信息請(qǐng)參考12頁(yè)的“使用字體”。
- 確保你的app不會(huì)與系統(tǒng)的新增手勢(shì)產(chǎn)生沖突:從屏幕底部向上滑動(dòng)調(diào)出控制中心的手勢(shì),從屏幕左右邊緣向中間滑動(dòng)的前進(jìn)后退手勢(shì)。
- app樣式中慎用投影、漸變、浮雕效果。因?yàn)閕OS 7的美學(xué)重視平緩、分層——盡量少使用讓UI元素看起來(lái)擬實(shí)的視覺(jué)效果。
- 必要的話(huà),將app升級(jí)到iOS 6中推薦的最佳實(shí)踐方法(如:Auto Layout和故事版)并確保app不使用廢棄的API。
現(xiàn)在你知道你需要做哪類(lèi)事情了,了解更多關(guān)于視圖控制器、著色、字體的改變,請(qǐng)閱讀第11頁(yè)的“布局和外觀”。
如果你仍需支持iOS6
如果你必須支持iOS 6和7兩個(gè)系統(tǒng),你可以在app運(yùn)行的時(shí)候檢測(cè)操作系統(tǒng)的版本,并隨時(shí)加載相應(yīng)的資源文件。更多信息請(qǐng)參考第7頁(yè)的“支持iOS 6系統(tǒng)”。
支持iOS 6系統(tǒng)
如果出于商業(yè)原因必須支持iOS 6或者更早期的系統(tǒng)版本,你需要選擇最切合實(shí)際的方式升級(jí)app到支持iOS 7。你選擇的技術(shù)可能有所不同,但總的建議是:聚焦在首先為iOS 7而重新設(shè)計(jì),然后為app考慮iOS 6版本需要做的事情。
注意:在運(yùn)行iOS 7的設(shè)備上,所有的系統(tǒng)界面元素(比如警告對(duì)話(huà)框和通知信息)都會(huì)使用iOS 7的默認(rèn)外觀,即使你的app使用更早期的外觀。
使用Interface Builder支持app多版本
Xcode 5中的Interface Builder包含了諸多新功能 ,它們能幫助你將app過(guò)渡到iOS 7的同時(shí)支持舊的版本。 看一下你對(duì)用戶(hù)界面的升級(jí)會(huì)對(duì)早期版本產(chǎn)生什么樣的影響。使用Assistant Editor,可以在畫(huà)布上修改iOS 7故事版或xib文件的同時(shí),看到這些變動(dòng)會(huì)對(duì)iOS 6版本文件造成的影響。 預(yù)覽早期故事版文件和xib文件的方法:
- 在畫(huà)布上查看iOS 7故事版文件或者xib文件的時(shí)候,打開(kāi)assistant editor。
- 打開(kāi)Assistant彈出菜單。
- 在菜單中,定位到預(yù)覽項(xiàng),然后選中相應(yīng)故事版文件或xib文件。
在iOS 7和早期版本iOS的UI預(yù)覽之間切換。如果你的app需要支持iOS 6.1之前的版本,使用這個(gè)功能來(lái)確認(rèn)UI在早期版本看起來(lái)沒(méi)有問(wèn)題。 在兩個(gè)版本的UI之間切換的方法:
- 在Interface Builder的檢查器中打開(kāi)文件。
- 打開(kāi)菜單“View as”。
- 選擇你想預(yù)覽的版本號(hào)。
更多關(guān)于Xcode 5中新的Interface Builder的信息,請(qǐng)參考“What’s New in Xcode”。
支持標(biāo)準(zhǔn)app的兩個(gè)版本
如果標(biāo)準(zhǔn)app的兩個(gè)版本使用相同的布局,使用Auto Layout創(chuàng)建適用于兩個(gè)版本iOS的用戶(hù)界面。要支持多版本的iOS,指定單獨(dú)一套的常量以便Auto Layout調(diào)整故事版和xib文件中的視圖和控制器。(更多信息參考“Constraints Express Relationships Between Views”) 如果標(biāo)準(zhǔn)app的兩個(gè)版本需要使用相同的外觀,但你又沒(méi)有使用Auto Layout,那么請(qǐng)使用offsets偏移量。在使用offsets前請(qǐng)將UI升級(jí)到iOS 7。接下來(lái)將早期UI元素的起始、高度、寬度的值指定為iOS 7中使用的offsets偏移量。 更多Auto Layout的內(nèi)容,請(qǐng)看“Cocoa Auto Layout Guide”。
管理混合型app中的多個(gè)版本圖片
混合型app經(jīng)常包含自定義圖片資源,比如操作欄按鈕圖標(biāo),操作欄或者其他控件的視圖背景。apps可以使用一種或多種資源分類(lèi)方法來(lái)管理這些資源。(了解更多資源分類(lèi)資料,請(qǐng)看“Asset Catalog Help”)
注意:資源分類(lèi)(asset catalog)包括顯示在app中的資源;資源分類(lèi)不能包含app的icon,載入圖像,或者其他任何外部過(guò)程需要獲取到的圖片。
混合型app如果需要支持多版本iOS,則必須自己管理圖像資源。將與app各個(gè)版本的圖片分別使用不同命名。 如果你的故事版或xib文件包含嵌入式圖片,考慮創(chuàng)建一個(gè)圖片視圖的出口(outlet),并在需要的時(shí)候加載合適的資源。在代碼中加載不同資源的方法,參考“Loading Resources Conditionally”。
依據(jù)附加條件加載資源
有時(shí)候,你需要考慮app在什么iOS版本上運(yùn)行,才能在代碼中做出相應(yīng)的對(duì)策。比如,在不同版本的app中,布局可能是截然不同的,可以通過(guò)加載不同的故事版或xib文件來(lái)實(shí)現(xiàn)。你可能需要使用不同代碼來(lái)處理API之間的不同之處,比如在給操作欄背景著色的時(shí)候使用barTintColor還是tintColor。 如果你需要為不同app版本加載不同的資源,但你只在Info.plist文件中指定了一個(gè)故事版或xib文件,那么你也可以先檢查系統(tǒng)版本然后加載對(duì)應(yīng)的資源(application:didFinish-LaunchingWithOptions:) 檢測(cè)app是否當(dāng)前運(yùn)行在iOS 7環(huán)境的方法是:寫(xiě)一個(gè)宏來(lái)檢查系統(tǒng)版本。下面的代碼展示了檢查系統(tǒng)版本并存儲(chǔ)結(jié)果的方法(方便以后隨時(shí)調(diào)用)。
NSUInteger DeviceSystemMajorVersion(); NSUInteger DeviceSystemMajorVersion() { static NSUInteger _deviceSystemMajorVersion = -1; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ _deviceSystemMajorVersion = [[[[[UIDevice currentDevice] systemVersion] componentsSeparatedByString:@”.”] objectAtIndex:0] intValue]; }); return _deviceSystemMajorVersion; } #define MY_MACRO_NAME (DeviceSystemMajorVersion() < 7)
布局和外觀(Layout & Appearance)
iOS 7給你的app布局和UI帶來(lái)了不少變化。視圖控制器、著色、字體效果等的變化,會(huì)影響你的app中所有UIKit對(duì)象。
使用視圖控制器(View Controller)
在iOS 7中,視圖控制器都是全屏的。iOS 7視圖控制器的外觀給人傳達(dá)了更細(xì)膩的控制感。特別是新的全屏外觀讓你可以指定視圖的每個(gè)邊緣的布局。 視圖控制器接口wantsFullScreenLayout已作廢。如果你像以前那樣地指定wantsFullScreenLayout = NO,iOS 7中視圖控制器會(huì)在將其內(nèi)容顯示到一個(gè)意外的屏幕位置。 UIViewController提供了如下屬性來(lái)調(diào)整視圖控制器的外觀:
- edgesForExtendedLayout 這個(gè)屬性屬于UIExtendedEdge類(lèi)型,它可以單獨(dú)指定矩形的四條邊,也可以單獨(dú)指定、指定全部、全部不指定。 使用edgesForExtendedLayout指定視圖的哪條邊需要擴(kuò)展,不用理會(huì)操作欄的透明度。這個(gè)屬性的默認(rèn)值是UIRectEdgeAll。
- extendedLayoutIncludesOpaqueBars 如果你使用了不透明的操作欄,設(shè)置edgesForExtendedLayout的時(shí)候也請(qǐng)將extendedLayoutIncludesOpaqueBars的值設(shè)置為No(默認(rèn)值是YES)。
- automaticallyAdjustsScrollViewInsets 如果你不想讓scroll view的內(nèi)容自動(dòng)調(diào)整,將這個(gè)屬性設(shè)為NO(默認(rèn)值YES)。
iOS 7中,視圖控制器支持自定義視圖之間的過(guò)場(chǎng)動(dòng)畫(huà)。另外,你可以使用iOS 7的新API來(lái)支持過(guò)場(chǎng)動(dòng)畫(huà)過(guò)程中的用戶(hù)交互。更多信息請(qǐng)參考下面兩個(gè)文檔:《UIViewController過(guò)場(chǎng)動(dòng)畫(huà)協(xié)議參考》和《UIViewController過(guò)場(chǎng)交互協(xié)議參考》。 iOS 7允許視圖控制器在app運(yùn)行過(guò)程中改變系統(tǒng)狀態(tài)欄的樣式。開(kāi)啟這個(gè)功能,請(qǐng)?jiān)贗nfo.plist文件中添加鍵UIViewControllerBasedStatusBarAppearance,并將值設(shè)為YES。動(dòng)態(tài)改變系統(tǒng)狀態(tài)欄的一個(gè)好方法是重寫(xiě)preferredStatusBarStyle方法,用一個(gè)動(dòng)畫(huà)模塊來(lái)更新?tīng)顟B(tài)欄外觀,并調(diào)用setNeedsStatusBarAppearanceUpdate方法。
使用著色(Tint Color)
在iOS 7中,著色是UIView的一個(gè)屬性。iOS 7的app會(huì)使用著色來(lái)定義一個(gè)關(guān)鍵色,這個(gè)顏色表明“這里是可交互的”,或者表示元素選中的狀態(tài)。 當(dāng)你指定某個(gè)視圖的著色的時(shí)候,這個(gè)顏色會(huì)自動(dòng)繼承到所有的子視圖中。因?yàn)閁IWindows繼承自UIView,你可以這樣通過(guò)設(shè)置窗體的著色屬性指定著色:
window.tintColor = [UIColor purpleColor];
如果不為窗體指定著色,則會(huì)使用系統(tǒng)默認(rèn)的顏色。 默認(rèn)情況下,視圖的著色是nil,意味著視圖使用父級(jí)的著色。也就是說(shuō)哪怕你不設(shè)置著色的話(huà),視圖也總能夠獲取到一個(gè)色值。 總的來(lái)說(shuō),最好在視圖還沒(méi)有顯示到屏幕上之前指定它的著色。想讓視圖繼承上個(gè)層級(jí)的著色的話(huà),就將著色設(shè)置為nil。
重要:iOS 7不支持通過(guò)外觀代理API來(lái)設(shè)置著色。
當(dāng)警告框(alert)和上拉菜單(action sheet)出現(xiàn)的時(shí)候,iOS 7自動(dòng)將背后視圖的著色變暗。為了響應(yīng)該色彩變化,在渲染時(shí)使用tintColor的自定義視圖的子類(lèi)需要重寫(xiě)tintColorDidChange方法,以便在合適的時(shí)候刷新渲染。
注意:在iOS 6中,tintColor可以用來(lái)給導(dǎo)航欄的背景著色、tab欄、工具欄、搜索欄、搜索欄的范圍選擇欄著色。而在iOS 7中,給背景著色只需要使用barTintColor屬性就可以了。
使用字體(Fonts)
iOS 7引入了動(dòng)態(tài)字體(Dynamic Type),它讓你的app中的字體顯示更加出色。 最小字號(hào)下的郵件正文
最大非殘障輔助字號(hào)下的郵件正文
使用動(dòng)態(tài)字體時(shí),同時(shí)意味著:
- 所有文字的粗細(xì),字間距,行高都被自動(dòng)調(diào)整。
- 可以語(yǔ)義上指定不同的文字樣式:正文、腳注、大標(biāo)題等等。
- 對(duì)動(dòng)態(tài)字體和殘障輔助超大號(hào)字體都能有很好的響應(yīng)效果。
要享受動(dòng)態(tài)字體的好處,請(qǐng)用UIFont類(lèi)下的preferredFontForTextStyle方法來(lái)生成文字,而不是直接指定字體的名稱(chēng)和大小。iOS 7會(huì)保證每個(gè)大小字體的最佳可讀性。
操作欄和欄上按鈕(Bars & Bar Buttons)
iOS 7中,狀態(tài)欄是透明的,其他的操作欄(導(dǎo)航欄、tab欄、工具欄、搜索欄、搜索欄下面的范圍選擇欄)是半透明的。通常情況下,你希望能看到操作欄背后是你的內(nèi)容。 大多數(shù)操作欄會(huì)將遮蔽住的內(nèi)容進(jìn)行模糊處理,除非你提供一張自定義背景圖。 為了標(biāo)識(shí)操作欄的位置,iOS 7引入了barPosition屬性,它可以幫助你指定什么時(shí)候自定義背景圖片需要平鋪在狀態(tài)欄上。值UIBarPositionTopAttached表明操作欄貼近屏幕頂部,背景向上延伸入系統(tǒng)狀態(tài)欄區(qū)域。相對(duì)的,值UIBarPositionTop表示操作欄位于當(dāng)前局部?jī)?nèi)容的頂部(比如,在彈出式氣泡的頂部)它不為狀態(tài)欄提供背景。 默認(rèn)情況下,所有的欄上按鈕都是無(wú)邊框的。詳情請(qǐng)看第18頁(yè)的“欄上按鈕”。
系統(tǒng)狀態(tài)欄(Status Bar)
因?yàn)橄到y(tǒng)狀態(tài)欄是透明的,所以可以透過(guò)它看到后面的視圖。狀態(tài)欄的風(fēng)格依照它內(nèi)容的外觀呈現(xiàn),包括時(shí)間、電量、Wi-Fi信號(hào)等。使用常量UIStatusBarStyle來(lái)指定使用黑色風(fēng)格還是白色風(fēng)格: UIStatusBarStyleDefault?顯示黑色的文字內(nèi)容。當(dāng)狀態(tài)欄后面的內(nèi)容是淡色的時(shí)候適合使用。
UIStatusBarStyleLightContent?顯示白色的文字內(nèi)容。當(dāng)狀態(tài)欄后面的內(nèi)容是深色時(shí)使用比較合適。
有些情況下,導(dǎo)航欄和搜索欄的背景圖片可以向上延伸到狀態(tài)欄背后(詳情見(jiàn)22頁(yè)的“導(dǎo)航欄”章節(jié)和23頁(yè)的“搜索欄和范圍選擇欄”章節(jié))。如果狀態(tài)欄下面沒(méi)有其他欄,內(nèi)容視圖需要使用全屏高度。要了解視圖控制器是怎樣恰當(dāng)?shù)夭季值?,?qǐng)看11頁(yè)的“使用視圖控制器”。在iOS 7中,通過(guò)獨(dú)立的視圖控制器,可以在app運(yùn)行的時(shí)候改變狀態(tài)欄的風(fēng)格。實(shí)現(xiàn)方法是在Info.plist中加入鍵UIViewControllerBasedStatusBarAppearance,并設(shè)置值為YES。
- 導(dǎo)航欄(Navigation Bar)
- 導(dǎo)航欄幫助用戶(hù)在不同信息層次結(jié)構(gòu)中穿梭,并選擇性地管理屏幕內(nèi)容。
iOS 7? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? iOS 6
- iOS 7 讓在導(dǎo)航欄上增加搜索欄的變得非常簡(jiǎn)單。詳情參考第16頁(yè)的“搜索欄和范圍選擇欄”。* ?如果想用自定義的圖像來(lái)替換返回的箭頭“<”的話(huà),還需自己創(chuàng)建一個(gè)相應(yīng)的遮罩。在導(dǎo)航過(guò)場(chǎng)動(dòng)畫(huà)的時(shí)候,iOS 7使用遮罩來(lái)讓上個(gè)層級(jí)的標(biāo)題漸隱漸出。了解更多返回按鈕和遮罩圖像的控制屬性,請(qǐng)參閱 “UINavigationBar類(lèi)參考”?。
如果你使用UIBarPositionTopAttached樣式創(chuàng)建了一個(gè)導(dǎo)航欄背景,確保圖像包含了系統(tǒng)狀態(tài)欄的區(qū)域。具體來(lái)說(shuō),你需要一個(gè)高分辨率下128像素的圖像。 下面這個(gè)表格描述了iOS 7如何對(duì)待不同高度的可變導(dǎo)航欄背景。(更多請(qǐng)看“UIImage類(lèi)參考”) 表格 5-1 可變大小的背景圖片處理策略
搜索欄和范圍選擇欄(Search Bar & Scope Bar)避免使用超高的背景圖片來(lái)制作導(dǎo)航欄下面的自定義投影,這種技術(shù)在iOS 7中不起作用,因?yàn)槌叩膱D片會(huì)向上(系統(tǒng)狀態(tài)欄方向)擴(kuò)展,而不是向下(導(dǎo)航欄下面)擴(kuò)展。如果你想給導(dǎo)航欄增加投影,可以創(chuàng)建一個(gè)自定義圖片,然后使用shadowImage屬性來(lái)自定義投影圖片。 搜索欄接收用戶(hù)輸入的文字,下方可以附帶一個(gè)范圍選擇欄。
iOS 7? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? iOS 6 在iOS 7中,UISearchDisplayController包含了displaySearchBarInNavigationBar屬性,這樣你就可以將搜索欄放進(jìn)導(dǎo)航欄,就像日歷app里面這樣:如果你使用UIBarPositionTopAttached的位置為搜索欄創(chuàng)建了一個(gè)背景圖片,請(qǐng)確保圖片的高度包含了狀態(tài)欄的高度。如果你創(chuàng)建了一個(gè)可變大小的背景圖片,參閱15頁(yè)的表格5-1獲取更多iOS 7調(diào)整背景圖片大小的策略。
范圍選擇欄則允許用戶(hù)選擇搜索結(jié)果的范圍。
注意:范圍選擇欄不能單獨(dú)出現(xiàn);必須依附在搜索欄下面出現(xiàn)。
iOS 7? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? iOS 6
Tab欄(Tab Bar)
Tab欄讓用戶(hù)可以在不同子任務(wù)、視圖、模式之間切換。
iOS 7? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? iOS 6
如果使用了自定義icon的話(huà),可以使用UITabBarItem中的selectedImage屬性來(lái)設(shè)置按下?tīng)顟B(tài)的圖像。如果不提供按下?tīng)顟B(tài)的icon,則兩個(gè)狀態(tài)會(huì)使用相同icon。
工具欄(Toolbar)
工具欄上放置當(dāng)前屏幕或者視圖下相關(guān)的對(duì)象的操作按鈕。
iOS 7? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? iOS 6
如果你創(chuàng)建了可變大小的背景圖片,請(qǐng)參考15頁(yè)的表格5-1獲取iOS 7處理不同尺寸圖片的細(xì)節(jié)。
欄上按鈕(Bar Buttons)
在iOS 6中,欄上按鈕可以是有邊框的,也可以是無(wú)邊框的。在iOS 7中只能是無(wú)邊框的。
iOS 7中的導(dǎo)航欄按鈕? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? iOS 6中的導(dǎo)航欄按鈕
為了更加明確,在iOS 7中,app的欄上按鈕經(jīng)常使用文字而不是圖形。例如,iOS 7中的日歷應(yīng)用使用了Inbox(收件箱)代替了收件箱圖形: iOS 7? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? iOS 6
在早期版本的iOS中,自定義欄上按鈕圖片會(huì)自動(dòng)被當(dāng)做“template image”。(template image被用作最終圖像的一個(gè)遮罩。)而iOS 7中,你可以使用以下UIImage屬性來(lái)指定是否需要把自定義的圖片當(dāng)做template image來(lái)處理:
- UIImageRenderingModeAlwaysTemplate。圖片被用作Template Image。
- UIImageRenderingModeAlwaysOriginal。圖片按照原樣渲染。
如果你沒(méi)有指定對(duì)圖片的處理方法的話(huà),圖片會(huì)使用包含它的視圖的默認(rèn)處理方式。比如,tab欄默認(rèn)會(huì)使用template處理方式,而進(jìn)度滑塊則會(huì)使用原樣完整渲染的處理方式。
注意:template image會(huì)依照其父結(jié)構(gòu)的著色進(jìn)行著色(更多請(qǐng)看18頁(yè)的“使用著色”)。如果不想讓欄上的元素被著色,為圖片設(shè)置UIImageRendering-ModeAlwaysOriginal屬性。
內(nèi)容視圖(Content View)
內(nèi)容視圖用來(lái)顯示自定義的app內(nèi)容。因?yàn)榇蠖鄶?shù)內(nèi)容視圖的外觀系統(tǒng)都沒(méi)有提供,所以iOS 7視覺(jué)上的變化對(duì)他們幾乎沒(méi)有影響。有個(gè)比較大的例外是分組聚合表格視圖,它在iOS 7上外觀有巨大的變化。
活動(dòng)菜單(Activity)
活動(dòng)菜單代表了一個(gè)可以響應(yīng)當(dāng)前選擇內(nèi)容的功能,它可以是系統(tǒng)提供的或者自定義的。用戶(hù)可以通過(guò)系統(tǒng)提供的活動(dòng)視圖控制器來(lái)使用這些功能,當(dāng)用戶(hù)點(diǎn)擊分享按鈕的時(shí)候,活動(dòng)視圖控制器就會(huì)從屏幕底部向上升起。 系統(tǒng)提供的活動(dòng)菜單中可以提供兩種風(fēng)格的按鈕:
- 原樣渲染的app圖標(biāo)——比如下面這個(gè)郵件的icon
- 和tab欄上的按鈕一樣的風(fēng)格——比如下面復(fù)制、打印這樣的icon
第三方功能總是使用第二種風(fēng)格的icon。
如果要在你的app中提供某個(gè)服務(wù),創(chuàng)建一個(gè)簡(jiǎn)潔、線(xiàn)框狀的template image。創(chuàng)建template image的時(shí)候請(qǐng)遵守下述指導(dǎo)原則:
- 使用黑色或者白色,配合適當(dāng)?shù)腶lpha透明度
- 不要使用投影
- 使用抗鋸齒效果
活動(dòng)菜單上的template image應(yīng)該在區(qū)域中居中,分辨率大約在70 x 70像素左右。
集合視圖(Collection View)
集合視圖用來(lái)管理和有序排列項(xiàng)目,將它們以可定制的布局進(jìn)行呈現(xiàn)。 在iOS 7中,集合視圖支持自定義過(guò)場(chǎng)動(dòng)畫(huà)。了解更多請(qǐng)參考“UICollectionViewTransition-Layout類(lèi)參考”。 照片應(yīng)用使用了集合視圖來(lái)展示圖片集,并支持他們之間的過(guò)場(chǎng)動(dòng)畫(huà)。
圖片視圖(Image View)
圖片視圖顯示一張圖片或者一系列動(dòng)態(tài)的圖片。 在iOS 7中,UIImageView包含了著色屬性tintColor。當(dāng)圖片視圖包含template image的時(shí)候,tintColor會(huì)被應(yīng)用到圖片上。
地圖視圖(Map View)
地圖視圖展示地理數(shù)據(jù),支持自帶地圖應(yīng)用的大多數(shù)功能。 照片應(yīng)用中的地圖視圖幫助用戶(hù)查看照片的地理位置信息。
在iOS 7,只能夠使用一個(gè)新的類(lèi)MKOverlayRenderer來(lái)在地圖視圖上面創(chuàng)建覆蓋層。 如果要給地圖視圖增加3D外觀的話(huà),只需給它的camera屬性分配一個(gè)相機(jī)對(duì)象即可(MKMapCamera的一個(gè)實(shí)例)。要了解更多,參考“MKMapView類(lèi)參考”。
頁(yè)面視圖控制器(Page View Controller)
頁(yè)面視圖控制器用來(lái)管理多頁(yè)的內(nèi)容,可以使用滾動(dòng)過(guò)場(chǎng),也可以使用卷頁(yè)過(guò)場(chǎng)動(dòng)畫(huà)。 在iOS 7中,使用兩個(gè)方法來(lái)分別指定(pageViewControllerPreferredInterfaceOrientationForPresentation和pageViewControllerSupportedInterfaceOrientations)。 下面可以看到iOS 7模擬器中頁(yè)面視圖控制器的默認(rèn)外觀:
滾動(dòng)視圖(Scroll View)
滾動(dòng)視圖幫助用戶(hù)查看超出視圖邊界的內(nèi)容。滾動(dòng)視圖在iOS 6和7上視覺(jué)唯一的不同是滾動(dòng)條的外觀。
iOS 7? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? iOS 6
在iOS 7上,你可以通過(guò)UIViewController的automaticallyAdjustsScrollViewInsets屬性來(lái)管理滾動(dòng)視圖的項(xiàng)目分組之間的間隔。
表格視圖(Table View)
表格視圖將數(shù)據(jù)以多行單列的列表呈現(xiàn)。 iOS 7為單行和成組的表格視圖引入了新的變化。
iOS 7(表格組)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? iOS 6(表格組)
表格視圖中的元素在iOS 7中也有了不同的樣式。
文本視圖(Text View)
文本視圖接受和顯示多行文本。 請(qǐng)使用UIFont類(lèi)的preferredFontForTextStyle方法獲取文本視圖中顯示的文字內(nèi)容。
網(wǎng)頁(yè)視圖(Web View)
網(wǎng)頁(yè)視圖是可以顯示富HTML內(nèi)容的區(qū)域。 在iOS 7中,UIWebView支持顯示分頁(yè)外觀的內(nèi)容的顯示。
控件(Controls)
控件是種特殊的UI元素,用戶(hù)既可以看(獲取信息)也可以與之交互(操作它)。所有的iOS 7控件的外觀都得到了升級(jí),它們大多數(shù)都有了新的尺度。 因?yàn)閁IControl是從UIView繼承而來(lái),你可以使用控件的tintColor屬性來(lái)為它們著色。更多內(nèi)容請(qǐng)參閱第11頁(yè)的“使用著色”。 系統(tǒng)提供的控件默認(rèn)支持系統(tǒng)定義的動(dòng)效,外觀也會(huì)隨著高亮和選中狀態(tài)的變化而變化。
日期拾取器(Date Picker)
日期拾取器顯示了日期和時(shí)間的內(nèi)容,包括:分鐘,小時(shí),日期,年份。它的整體尺寸和iOS 6比起來(lái)沒(méi)有變化,但是外觀發(fā)生了巨大的變化。
iOS 7的app會(huì)將日期拾取器嵌入到內(nèi)容中,而不是單獨(dú)呈現(xiàn)在一個(gè)彈出的視圖上。比如日歷應(yīng)用動(dòng)態(tài)地將表格的一行擴(kuò)展開(kāi),將日期拾取器嵌入,用戶(hù)指定時(shí)間的時(shí)候就不需要離開(kāi)當(dāng)前這個(gè)添加事項(xiàng)視圖。
新增聯(lián)系人按鈕(Contact Add Button)
新增聯(lián)系人按鈕是一個(gè)UIButtonTypeContactAdd類(lèi)型的UIButton,它可以將用戶(hù)的信息添加到其他基于文字視圖的文字域中。 新增聯(lián)系人按鈕的大小和外觀在iOS 7中有變化。
iOS 7 ? ? ? ? ? ? ? iOS 6
細(xì)節(jié)展開(kāi)按鈕(Detail Disclosure Button)
細(xì)節(jié)展開(kāi)按鈕是一個(gè)UIButtonTypeDetailDisclosure類(lèi)型的UIButton,它表明當(dāng)前項(xiàng)目還有額外的細(xì)節(jié)和相關(guān)功能,點(diǎn)擊后會(huì)在另一個(gè)表格或視圖中呈現(xiàn)。在iOS 7中,細(xì)節(jié)展開(kāi)按鈕使用和Info按鈕一樣的符號(hào)。
iOS 7 ? ? ? ? ? ? ? iOS 6
當(dāng)細(xì)節(jié)展開(kāi)按鈕出現(xiàn)在表格的一行中,點(diǎn)擊該行的其它地方不會(huì)激活該按鈕;相反地,這個(gè)操作會(huì)選中該行,或者觸發(fā)app定義的行為。
Info按鈕(Info Button)
Info按鈕的類(lèi)型是UIButtonTypeInfoLight或者UIButtonTypeInfoDark。它表明app的配置細(xì)節(jié)入口,新頁(yè)面有時(shí)候出現(xiàn)在當(dāng)前視圖的背面。在iOS 7中,info按鈕使用和細(xì)節(jié)展開(kāi)按鈕相同的圖形。 在iOS 7中,info按鈕的大小和外觀發(fā)生了變化。
iOS 7? ? ? ? ? ? iOS 6(天氣應(yīng)用中的)
文本標(biāo)簽(Label)
文本標(biāo)簽用來(lái)呈現(xiàn)靜態(tài)文本。 默認(rèn)情況下,文本標(biāo)簽會(huì)使用系統(tǒng)字體,所以在iOS 6和7上會(huì)看起來(lái)不一樣。
iOS 7? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? iOS 6
確保使用UIFont的方法preferredFontForTextStyle來(lái)獲取顯示在標(biāo)簽上的文字。
頁(yè)碼控件(Page Control)
頁(yè)碼控件指示打開(kāi)了多少視圖,當(dāng)前看到的是哪一個(gè)。 iOS 7中,頁(yè)碼控件的大小和外觀發(fā)生了變化。
iOS 7(天氣應(yīng)用中的) ? ? ? ? ? ? ? ? ? ? iOS 6(天氣應(yīng)用中的)
拾取器(Picker)
拾取器顯示一系列值,用戶(hù)可以滾動(dòng)并選擇其一。 拾取器的總體大小相比iOS 6沒(méi)有變化;外觀和行為與日期時(shí)間拾取器是一致的。
iOS 7? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? iOS 6
進(jìn)度視圖(Progress View)
進(jìn)度視圖用來(lái)展示任務(wù)和過(guò)程的進(jìn)度。 進(jìn)度視圖的大小和外觀(下圖是在自帶郵件客戶(hù)端中的)在iOS 7中發(fā)生了變化。
iOS 7? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? iOS 6
刷新控件(Refresh Control)
刷新控件響應(yīng)用戶(hù)主動(dòng)觸發(fā)的刷新操作,一般會(huì)出現(xiàn)在表格上。 它的大小和外觀在iOS 7中發(fā)生了變化。
iOS 7? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? iOS 6
圓角矩形按鈕(Rounded Rectangle Button)
圓角矩形按鈕在iOS 7中被棄用了。用系統(tǒng)的無(wú)邊界按鈕替代它。對(duì)應(yīng)的類(lèi)型是UIButtonTypeSystem的UIButton。 iOS 7系統(tǒng)按鈕不包括倒角和背景樣式。系統(tǒng)按鈕可以包含一個(gè)圖形或者文字信息,可以指定一種著色或者繼承父級(jí)的著色。
iOS 7系統(tǒng)按鈕? ? ? ? ? ? iOS 6的圓角矩形按鈕
注意:在iOS 7中,UIButtonTypeRoundedRect被重新定義成UIButtonType-System。在iOS 6中使用圓角矩形按鈕的app會(huì)自動(dòng)轉(zhuǎn)化成系統(tǒng)按鈕的外觀。
如果你需要顯示一個(gè)包含倒角的按鈕,使用UIButtonTypeCustom類(lèi)型的按鈕,這個(gè)類(lèi)型支持自定義背景圖片。
分段控件(Segmented Control)
分段控件是由一系列分段構(gòu)成的,每個(gè)段的功能相當(dāng)于一個(gè)按鈕,每個(gè)按鈕點(diǎn)擊后都展示一個(gè)不同的視圖。 分段控件的大小和樣式在iOS 7中的變化如下。
iOS 7? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? iOS 6
在iOS 7中,分段控件使用單一的樣式,segmentedControlStyle屬性不再使用。
滑動(dòng)器(Slider)
滑動(dòng)器讓用戶(hù)可以在允許的范圍內(nèi)連續(xù)調(diào)整某個(gè)值。 在iOS 7中的大小和樣式如下。
iOS 7? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? iOS 6
iOS 7中依然可以對(duì)最小和最大軌道圖像按下?tīng)顟B(tài)使用著色,使用三個(gè)屬性來(lái)操作(minimumTrackTintColor,maximumTrackTintColor和thumbTintColor)。如果你將minimumTrackColor屬性設(shè)為nil,則該區(qū)域會(huì)繼承父級(jí)的著色;如果設(shè)置maximumTrackTintColor或thumbTintColor的值為nil的話(huà),兩個(gè)區(qū)域都會(huì)使用默認(rèn)顏色。
步進(jìn)器(Stepper)
步進(jìn)器可以將某個(gè)值增減一個(gè)常數(shù)值。 它在iOS 7中的大小和外觀發(fā)生了變化。
iOS 7 ? ? ? ? ? ? ? ? ? ? ? iOS 6
在iOS 7中,默認(rèn)情況下,步進(jìn)器將自定義增減位置的圖像視為template image。
開(kāi)關(guān)(Switch)
開(kāi)關(guān)用來(lái)表示兩個(gè)互斥的選項(xiàng)或狀態(tài)(最常在表格視圖中使用)。 在iOS 7中的變化如下。
iOS 7 ? ? ? ? ? ? ? ? ? ? ? iOS 6
iOS 7繼續(xù)可以對(duì)開(kāi)、關(guān)、不可用三個(gè)狀態(tài)使用著色。按下?tīng)顟B(tài)則使用下面三個(gè)屬性著色:onTintColor,tintColor和thumbTintColor。 在iOS 7中,默認(rèn)情況中自定義的開(kāi)關(guān)圖像會(huì)被忽略。
文本域(Text Field)
文本域接受用戶(hù)的單行輸入。 它在iOS 7中的大小和外觀有如下變化。
iOS 7(地圖中的兩行文字域) ? ? ? ? ? ? ? ? ? ? iOS 6( 地圖中的兩行文字域)
確保使用UIFont的preferredFontForTextStyle方法來(lái)獲取和顯示文字域中的文字。
臨時(shí)視圖(Temporary Views)
動(dòng)作列表,警告對(duì)話(huà)框,模態(tài)視圖是三種臨時(shí)視圖,它們?cè)谛枰脩?hù)特別注意的時(shí)候、或提供額外的選擇或者功能的時(shí)候會(huì)出現(xiàn)。 雖然動(dòng)作列表和警告對(duì)話(huà)框的內(nèi)容可以自定義,它們的外觀能做的自定義很少。因此你幾乎不用考慮怎么讓它們?cè)趇OS 7上看起來(lái)更美觀。 因?yàn)槟B(tài)視圖本質(zhì)上是視圖的一種,你可能也需要重新設(shè)計(jì)一下模態(tài)視圖,讓它們?cè)趇OS 7上看起來(lái)更適宜。
注意:當(dāng)臨時(shí)視圖出現(xiàn)的時(shí)候,iOS 7自動(dòng)將背后那個(gè)標(biāo)準(zhǔn)視圖變暗。你可能需要調(diào)整一下你的代碼來(lái)處理這種顏色的變化;更多信息請(qǐng)看第18頁(yè)的“使用著色”。
動(dòng)作列表(Action Sheet)
動(dòng)作列表用來(lái)呈現(xiàn)一系列用戶(hù)觸發(fā)的任務(wù)的選擇。 在iOS 7中,默認(rèn)情況動(dòng)作列表是透明的,包括無(wú)邊框的按鈕。
iOS 7? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? iOS 6
iOS 7中,常量UIActionSheetStyle不再使用。在iOS 7設(shè)備上,不管系統(tǒng)提供的UI(如動(dòng)作列表的UI)是怎樣的,都會(huì)一律使用iOS 7的默認(rèn)外觀。 注意動(dòng)作列表中潛在危險(xiǎn)的選項(xiàng)——destructiveButtonTitle中參數(shù)initWithTitle:delegate:cancelButtonTitle:destructiveButtonTitle:otherButtonTitles指定的——自動(dòng)使用系統(tǒng)紅色。
警告對(duì)話(huà)框(Alert)
警告對(duì)話(huà)框呈現(xiàn)給用戶(hù)影響他們使用app或者設(shè)備的重要信息。 外觀在iOS 7上看起來(lái)是這樣的。
iOS 7? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? iOS 6
在iOS 7設(shè)備中,系統(tǒng)提供的UI(比如警告框)使用系統(tǒng)提供的樣式,不管當(dāng)前運(yùn)行的app樣式是怎樣的。 如果你的警告對(duì)話(huà)框有三個(gè)按鈕,第三個(gè)按鈕會(huì)顯示在這兩個(gè)主按鈕下面一排。
模態(tài)視圖(Modal View)
模態(tài)視圖提供了當(dāng)前任務(wù)或工作流的自承載的功能。 在iOS 7中,系統(tǒng)提供的模態(tài)視圖使用和以前相同的外觀。
iOS 7? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? iOS 6
在iOS 7中,你可以使用自定義的對(duì)象和選擇性交互控制器對(duì)象來(lái)管理模態(tài)展現(xiàn)。了解更多自定義視圖控制器的過(guò)場(chǎng)動(dòng)畫(huà),請(qǐng)參考UIViewControllerAnimatorTransitioning協(xié)議參考和UIViewControllerInteractiveTransitioning協(xié)議參考。
文檔修訂歷史
2013-06-10 蘋(píng)果官方文檔發(fā)布
2013-06-20 中文翻譯版完成
2013-06-21 完成第一次修訂(語(yǔ)義修訂)
2013-06-24 完成第二次修訂(邏輯修訂)
2013-07-02?板式全面設(shè)計(jì),措辭修訂
本文出自搜狐MUED博客,轉(zhuǎn)載時(shí)請(qǐng)注明出處
- 目前還沒(méi)評(píng)論,等你發(fā)揮!