在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ iOS/ 文本與標(biāo)簽
上下文菜單
更新記錄
文本與標(biāo)簽
使用 iOS 技術(shù)
開發(fā)您的 Watch 應(yīng)用
Watch 應(yīng)用結(jié)構(gòu)
預(yù)覽概要
界面對(duì)象
UI 概要
Tables
配置 Xcode 項(xiàng)目
圖片
通知要點(diǎn)
設(shè)置
界面導(dǎo)航
管理你的預(yù)覽界面
管理自定義 Long Look 界面

文本與標(biāo)簽

如需在 WatchKit 應(yīng)用中顯示一段文本,請(qǐng)使用標(biāo)簽對(duì)象。標(biāo)簽支持格式化文本,并且可以在運(yùn)行時(shí)用代碼改變文本內(nèi)容。

拖動(dòng)標(biāo)簽對(duì)象到對(duì)應(yīng)的 storyboard 場(chǎng)景中便可添加標(biāo)簽對(duì)象。然后便可設(shè)置標(biāo)簽的初始化的文本以及格式。WatchKit 同時(shí)支持標(biāo)準(zhǔn)字體和自定義字體。圖 8-1 展示了標(biāo)準(zhǔn)字體風(fēng)格的使用。

圖 8-1 使用標(biāo)準(zhǔn)字體風(fēng)格的標(biāo)簽

http://wiki.jikexueyuan.com/project/apple-watch-programming-guide/images/text_styles_2x.png" alt="使用標(biāo)準(zhǔn)字體風(fēng)格的標(biāo)簽" />

更多的設(shè)置標(biāo)簽的相關(guān)信息,請(qǐng)參照 WKInterfaceLabel 類參考

使用字體

WatchKit 應(yīng)用,glance 界面以及通知界面使用標(biāo)準(zhǔn)字體來顯示文本。你應(yīng)用中的 Controller 可以使用自定義字體來顯示文本。(glance 和通知界面無法使用自定義字體)為了讓你的應(yīng)用使用自定義字體,你必須安裝相應(yīng)的字體,如下:

  • 把你的自定義字體文件包含到 WatchKit 應(yīng)用以及 WatchKit 擴(kuò)展 Bundle里。
  • 給 WatchKit 應(yīng)用的 Info.plist 文件添加 UIAppFonts 關(guān)鍵字并指向你添加的自定義字體。更多關(guān)于 UIAppFonts 關(guān)鍵字的相關(guān)信息,請(qǐng)參照 信息屬性列表關(guān)鍵字參考。

重要
為了能在運(yùn)行時(shí)用自定義字體創(chuàng)建相應(yīng)的字符串,你必須把自定義字體包含到你的 WatchKit 擴(kuò)展中。attributed string 發(fā)送到 Apple Watch 的時(shí)候,相應(yīng)的字體信息也包含在其中。你 WatchKit 應(yīng)用 bundle 中的自定義字體便可以對(duì)字符串進(jìn)行渲染。

使用自定義字體來格式化文本時(shí),需要?jiǎng)?chuàng)建一個(gè)包含字體信息的 attributed string 并把它設(shè)給標(biāo)簽,如代碼 8-1 所示。字體名稱和大小被編碼到 attributed string 中,然后會(huì)被用來更新 Apple Watch 上的標(biāo)簽.如果定義的字體名稱不符合系統(tǒng)字體或者你安裝的自定義字體的名稱,WatchKit 會(huì)自動(dòng)使用系統(tǒng)的字體。

代碼 8-1 在標(biāo)簽中使用自定義字體

//用自定義字體的信息設(shè)置 attributed string

let menloFont = UIFont(name: "Menlo", size: 12.0)!
var fontAttrs = [NSFontAttributeName : menloFont]
var attrString = NSAttributedString(string: "My Text", attributes: fontAttrs)

// 把文本設(shè)給標(biāo)簽對(duì)象
self.label.setAttributedText(attrString)

管理文件輸入

WatchKit 為獲取用戶文本輸入提供了一個(gè)標(biāo)準(zhǔn)的模式界面。界面允許用戶通過語音或者選擇標(biāo)準(zhǔn)短語以及表情等來進(jìn)行輸入。你可以通過調(diào)用當(dāng)前處于激活狀態(tài)的 Controller 的 presentTextInputControllerWithSuggestions:allowedInputMode:completion: 方法來顯示輸入界面.界面顯示時(shí),你可以指定輸入類型并且可以使用一個(gè)block來處理結(jié)果。你也可以指定一個(gè)或者多個(gè)初始化短語用來顯示在界面上,如圖 8-2 所示。用戶可以從可用短語中選擇或者輸入其他短語。

圖 8-2 收集用戶的文本輸入

http://wiki.jikexueyuan.com/project/apple-watch-programming-guide/images/text_input_phrases_2x.png" alt="figure8-2" />

代碼 8-2 展示了如何配置文本輸入 Controller 并處理結(jié)果.在指定初始化短語和輸入模式后,Controller 以異步的方式加載。當(dāng)用戶選擇了某一項(xiàng)或者取消了輸入后,你的 block 會(huì)在主線程中執(zhí)行。使用 block 來獲取用戶選擇的文本或者表情圖片并且刷新你的應(yīng)用。

代碼 8-2

NSArray *initialPhrases = @[@"Ley's do lunch," @"Can we meet tomorrow?", @"When are you free?"];

[self presentTetxInputControllerWithSuggestions:initialPhrases allowedInputMode:WKTextInputModeAllwAnimatedEmoji completion:^(NSArray *results){
    if(results && results.count > 0){
        id aResult = [results objectAtInde:0];
        //使用字符串或者圖片
    }else{
        //用戶沒有選擇任何東西
     }
 }];

文本多語言化

WatchKit 可以使用與 iOS 應(yīng)用相同的方法來處理多語言環(huán)境。

  • 在 storyboards 和 xib 文件中使用 Xcode 的多語言環(huán)境支持。多語言環(huán)境讓你可以僅使用一個(gè) storyboard 文件便能支持各種本地化語言。storyboard 使用的本地化字符串儲(chǔ)存在指定語言的字符串文件中。

  • 使用 NSLocalizedString 類的宏定義來動(dòng)態(tài)獲取本地化字符串。
  • 使用 NSNumberFormatter 類可以通過用戶的時(shí)區(qū)和場(chǎng)景設(shè)置來格式化數(shù)值。
  • 使用 NSDateFormatter 類可以通過用戶的時(shí)區(qū)和場(chǎng)景設(shè)置來格式化時(shí)間和日期。

對(duì)你的應(yīng)用進(jìn)行多語言化處理的時(shí)候,需要考慮的一個(gè)主要問題是安排好你的界面以使標(biāo)簽以及其他顯示文本的控件有足夠的顯示空間。比如,當(dāng)需要放置三個(gè)按鈕控件的時(shí)候,縱向擺放會(huì)比橫向擺放更妥當(dāng)。縱向擺放可以在文本變長(zhǎng)的時(shí)候提供更多的空間給按鈕。

更多關(guān)于應(yīng)用的多語言化,請(qǐng)參照多語言和本地化指南