在 Swift 中編寫 watchOS 2 Hello World 程序

作者:codingexplorer骡湖,原文鏈接,原文日期:2015-12-08
譯者:mmoaay伞访;校對:千葉知風乌奇;定稿:numbbbbb

過去的幾個月我一直保持著寫博客的習慣没讲,但是現(xiàn)在我得專心工作了。最近在做一些 watchOS 2 相關的更新工作华弓,我覺得如果出個系列教程會對大家很有幫助食零。首先我們需要學會開發(fā)第一個 watchOS 2 應用,所以下面來開發(fā)一個 watchOS 2 風格的 “Hello World!”吧寂屏!

在教程開始前贰谣,我準備介紹如何使用 Swift 在 iOS、watchOS迁霎、tvOS 和 OS X 上編程吱抚。此外,如果你想在本博客中學到其他知識考廉,請給 Twitter @CodingExplorer 或者 Contact Page 來提出建議秘豹。

創(chuàng)建你的 watchOS 2 應用

打開 Xcode,創(chuàng)建一個新項目昌粤〖热疲可以使用初始界面,也可以通過菜單(File → New → Project…)涮坐。然后凄贩,定位到 watchOS 部分并選擇 Application,現(xiàn)在界面看起來是這樣的:

因為只有 “iOS App with WatchKit App“ 這一個選項袱讹,所以選中并點擊 next疲扎。接著你需要給應用起個名字然后做幾個選擇來初始化項目。我們把應用命名為 “HelloWatch“捷雕。簡單起見椒丧,你可以把下方的 the Notification Scene、Glance Scene 等選項關閉救巷。雖然它們很有用壶熏,但是在這個項目中我們只需要生成一個簡單的 “Hello World“ 應用。當然浦译,你需要確保將 Language 選項設置為 “Swift“久橙。

這個項目是不會生成 iOS 應用的俄占。如果你想知道如何在 iOS 上寫一個 Hello World 應用,請閱讀 Hello World! Your first iOS App in Swift淆衷。
選擇好項目的保存位置,我們就可以開始編程了渤弛。選中導航面板中 “HelloWatch WatchKit App“ 分組中的 Interface.storyboard祝拯。

這個文件就是 watchOS 應用的界面文件。和 iOS “Hello World“ 應用類似她肯,我們在應用中放置一個 label 和一個 button佳头,點擊 button 會改變 label 的文本內(nèi)容。

我們從 Object Library 拖一個 label 和 button 到 storyboard 上晴氨,然后把 label 放置在 button 的上方:

這時 label 看起來會比較擁擠康嘉,我們設置 width 為 “Relative to Container“ ,并將其值設置為 1籽前,從而把 label 的寬度設置為屏幕的寬度亭珍。這個值代表了和屏幕寬高的百分比,所以 1 就是 100%枝哄,0.5 就是 50%肄梨,以此類推。我們在垂直方向上也給它更多的空間挠锥,把 Height 設置為“Relative to Container“ 然后將其值設置為 0.25 (即屏幕高度的 25%)众羡。最后我們把 Text 設置為 “App Loaded…“,如果你喜歡還可以將其設置為居中顯示蓖租。

給 watchOS UI 添加一些 Swift 代碼

UI 已經(jīng) OK 了×宦拢現(xiàn)在我們把它和代碼連接起來,然后讓 button 去做一些事情蓖宦。最簡單的方式就是打開輔助編輯器齐婴。點擊右上方的斜 venn 圖標即可:

如果需要更大的操作空間,可以點擊最右邊的按鈕(圖標是右側包含長條的方框)關閉工具面板球昨。

然后尔店,從 label 開始用 Ctrl+拖動或者右擊拖動的方式拉一條線到代碼中(根據(jù)慣例,一般是在類的頂部)主慰。然后就會彈出對話框讓你給 label 的 outlet 命名嚣州。我們把它叫做 “displayLabel“。按照慣例我仍然建議采用駱駝命名法來給它們(也包括所有的變量)命名共螺,以小寫字母開始该肴,接下來每個單詞的首字母大寫(因為我們不能在變量名中加空格,所以我們以這樣的方式來表明這是一個新的單詞)藐不。

接下來匀哄,我們對 button 做同樣的操作秦效。從 button 開始用 Ctrl + 拖動的方式拉一條線到代碼中(可以是類范圍內(nèi)的任意位置,據(jù)我所知涎嚼,除了放在 outlet 下方阱州,沒有其它特殊的慣例)然后創(chuàng)建一個 action。一定要確保連接的方式是 “action“法梯。如果你創(chuàng)建的是 outlet苔货,它可以讓你改變 button 本身的狀態(tài),比如它的文本立哑,但這不是我們在這里想做的事情:

再次確認這是一個 “Action“夜惭。它會創(chuàng)建一個叫 “buttonTapped“ 的方法,我們在這個方法里面寫我們的代碼铛绰。改變 WKInterfaceLabel 文本的代碼非常簡單诈茧,如下:

@IBAction func buttonTapped() {
    displayLabel.setText("Hello World!")
}

我們的方法中間只有 1 行代碼。我們調用了 WKInterfaceLabel 的 “setText“ 方法捂掰,然后把新的文本做為參數(shù)傳遞給它敢会。在 iOS 中,我們通過一個叫“text“的屬性就可以輕松的改變 label 的顯示內(nèi)容尘颓。但是在目前來說走触,watchOS 并沒有這樣一個屬性,我們甚至無法在程序中讀取文本內(nèi)容疤苹,預計下一版本的 watchOS 會加入這個屬性互广,但是現(xiàn)在我們只能用 “setText“ 方法設置文本內(nèi)容。

大功告成卧土。如果你有 Apple Watch惫皱,可以把手機連接到 Mac,然后把這個應用安裝到手機上尤莺。你也可以使用模擬器旅敷。在左上角選擇 “HelloWatch WatchKit App“ 這個 target,然后選擇任意一個 iPhone 和 Watch 模擬器(或者選擇具體的 iPhone颤霎,如果你想在真機上測試)媳谁,然后點擊 play 按鈕。你可能需要多點擊幾次 “play“ 按鈕(如果你的電腦沒有 SSD 友酱,這可以減少加載模擬器的時間)晴音,最終你會見到下面的畫面:

點擊 button 之后就會看到:

完整起見,InterfaceController.swift 文件的所有代碼如下:

import WatchKit
import Foundation


class InterfaceController: WKInterfaceController {
    
    @IBOutlet var displayLabel: WKInterfaceLabel!

    override func awakeWithContext(context: AnyObject?) {
        super.awakeWithContext(context)
        
        // Configure interface objects here.
    }
    
    @IBAction func buttonTapped() {
        displayLabel.setText("Hello World!")
    }

    override func willActivate() {
        // This method is called when watch view controller is about to be visible to user
        super.willActivate()
    }

    override func didDeactivate() {
        // This method is called when watch view controller is no longer visible
        super.didDeactivate()
    }

}

上面的大部分代碼都是模版自動生成的缔杉。

總結

文章中的代碼都是在 Xcode 7.1.1 中進行測試的锤躁。

這就是 watchOS 2 中 “Hello World!“ 應用。你會發(fā)現(xiàn)這篇教程非常簡單或详,其實這是有意為之系羞。接下來的教程會經(jīng)常引用這篇教程郭计,這樣就可以避免重復 watchOS 應用的設置步驟。這個系列接下來的文章會更有趣椒振,包括使用 WatchConnectivity 在 iOS 和 watchOS 2 應用之間傳遞數(shù)據(jù)以及并發(fā)實現(xiàn)昭伸。敬請期待更多的 watchOS 和 Swift 教程!

希望這篇文章對你有用杠人。如果你覺得有用勋乾,請不要猶豫,把它分享到你的 Twitter 或者你喜歡的社交媒體嗡善,每次分享對我來說都很有用。當然学歧,如果你有任何問題罩引,請馬上通過 Contact Page 或者 Twitter @CodingExplorer 聯(lián)系我,我會盡我所能幫助你枝笨。謝謝袁铐!

本文由 SwiftGG 翻譯組翻譯,已經(jīng)獲得作者翻譯授權横浑,最新文章請訪問 http://swift.gg剔桨。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市徙融,隨后出現(xiàn)的幾起案子洒缀,更是在濱河造成了極大的恐慌,老刑警劉巖欺冀,帶你破解...
    沈念sama閱讀 221,273評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件树绩,死亡現(xiàn)場離奇詭異,居然都是意外死亡隐轩,警方通過查閱死者的電腦和手機饺饭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評論 3 398
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來职车,“玉大人瘫俊,你說我怎么就攤上這事°擦椋” “怎么了扛芽?”我有些...
    開封第一講書人閱讀 167,709評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長称勋。 經(jīng)常有香客問我胸哥,道長,這世上最難降的妖魔是什么赡鲜? 我笑而不...
    開封第一講書人閱讀 59,520評論 1 296
  • 正文 為了忘掉前任空厌,我火速辦了婚禮庐船,結果婚禮上,老公的妹妹穿的比我還像新娘嘲更。我一直安慰自己筐钟,他們只是感情好,可當我...
    茶點故事閱讀 68,515評論 6 397
  • 文/花漫 我一把揭開白布赋朦。 她就那樣靜靜地躺著篓冲,像睡著了一般。 火紅的嫁衣襯著肌膚如雪宠哄。 梳的紋絲不亂的頭發(fā)上壹将,一...
    開封第一講書人閱讀 52,158評論 1 308
  • 那天,我揣著相機與錄音毛嫉,去河邊找鬼诽俯。 笑死,一個胖子當著我的面吹牛承粤,可吹牛的內(nèi)容都是我干的暴区。 我是一名探鬼主播,決...
    沈念sama閱讀 40,755評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼辛臊,長吁一口氣:“原來是場噩夢啊……” “哼仙粱!你這毒婦竟也來了?” 一聲冷哼從身側響起彻舰,我...
    開封第一講書人閱讀 39,660評論 0 276
  • 序言:老撾萬榮一對情侶失蹤伐割,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后淹遵,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體口猜,經(jīng)...
    沈念sama閱讀 46,203評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,287評論 3 340
  • 正文 我和宋清朗相戀三年透揣,在試婚紗的時候發(fā)現(xiàn)自己被綠了济炎。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,427評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡辐真,死狀恐怖须尚,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情侍咱,我是刑警寧澤耐床,帶...
    沈念sama閱讀 36,122評論 5 349
  • 正文 年R本政府宣布,位于F島的核電站楔脯,受9級特大地震影響撩轰,放射性物質發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,801評論 3 333
  • 文/蒙蒙 一堪嫂、第九天 我趴在偏房一處隱蔽的房頂上張望偎箫。 院中可真熱鬧,春花似錦皆串、人聲如沸淹办。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,272評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽怜森。三九已至,卻和暖如春谤牡,著一層夾襖步出監(jiān)牢的瞬間副硅,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評論 1 272
  • 我被黑心中介騙來泰國打工翅萤, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留想许,地道東北人。 一個月前我還...
    沈念sama閱讀 48,808評論 3 376
  • 正文 我出身青樓断序,卻偏偏與公主長得像,于是被迫代替她去往敵國和親糜烹。 傳聞我的和親對象是個殘疾皇子违诗,可洞房花燭夜當晚...
    茶點故事閱讀 45,440評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關注 消息 iOS 第三方庫、插件疮蹦、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,117評論 4 61
  • 此時此刻诸迟,在回家轉的最后一班車的站臺上,隊伍從站臺的一頭排到了站臺的另一頭愕乎,為了等個座位我每天都往前...
    長頸鹿的小毛鬃閱讀 335評論 0 0
  • 文/管子 聽了一段王竑锜老師的視頻演講阵苇,他講到了人的組成,這個提法有新意感论。 我們都知道绅项,一個...
    管子姐姐閱讀 958評論 0 0
  • 今天看的內(nèi)容是巴克遇到了流動資金短缺的問題,他去到當?shù)劂y行貸款比肄,卻沒有借到快耿,能夠借的親戚朋友的錢都借了,員工伍德爾...
    hanxuerping閱讀 146評論 0 0
  • 蘆葦花季 喜歡蘆葦花 她 柔柔的 像棉花一樣細膩 她 像秋風一樣溫柔 她 帶著燕麥的芳香 有著驚海濤浪的動蕩 一陣...
    723edf844d12閱讀 197評論 3 5