成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

WatchKit入門:創(chuàng)建一個簡單的猜數(shù)游戲

移動開發(fā)
Apple在2014年11月18日發(fā)布的Xcode 6.2 beta中首次內(nèi)置了WatchKit,該SDK可以讓開發(fā)者為Apple Watch創(chuàng)建應(yīng)用。要想為Apple Watch開發(fā)應(yīng)用,首先你需要一個蘋果開發(fā)者付費賬號,下載Xcode 6.2 beta。本教程的示例App使用Swift語言編寫,對Swift語言編程基礎(chǔ)有一定要求。

編者注:如你所知,Apple已在Xcode 6.2 beta上附帶了WatchKit SDK,讓開發(fā)者為Apple Watch創(chuàng)建應(yīng)用。您或許已經(jīng)開始嘗試用WatchKit開發(fā)App,如果還沒起手,本篇入門教程就是為您準備的。這周Julo開發(fā)組的Julian會為您介紹WatchKit,展示如何利用它創(chuàng)建一個簡單的猜數(shù)游戲,您將會了解如何創(chuàng)建Watch app,布局界面并測試應(yīng)用。

我們這就開始教程吧。

Apple在2014年11月18日發(fā)布的Xcode 6.2 beta中首次內(nèi)置了WatchKit,該SDK可以讓開發(fā)者為Apple Watch創(chuàng)建應(yīng)用。要想為Apple Watch開發(fā)應(yīng)用,首先你需要一個蘋果開發(fā)者付費賬號,下載Xcode 6.2 beta。本教程的示例App使用Swift語言編寫,對Swift語言編程基礎(chǔ)有一定要求。
 

[[130330]]

正片開始
 

了解WatchKit App

現(xiàn)在Apple尚不允許開發(fā)者創(chuàng)建原生Watch app,目前你可以構(gòu)建的三種Apple Watch 用戶體驗分別是WatchKit app,Glance和可操作式通知(actionable notification)。本教程集中講解WatchKit app,暫不涉及Glance和通知。

首先,Watch app不是獨立的應(yīng)用,也就是說在用戶iPhone上運行的配對App必不可少,我們要構(gòu)建的Watch app只是iPhone app的擴展,Watch app的安裝和管理由iPhone app負責。另外,iPhone app與Watch app可以相互溝通,不過本教程不涵蓋這部分內(nèi)容。

402.png

Apple Watch有38mm和42mm兩種屏幕尺寸,但不必分別設(shè)計用戶界面,Xcode會自動調(diào)整布局,適應(yīng)屏幕尺寸。不過這里用的不是Auto Layout,而是WatchKit獨有的布局系統(tǒng)。

示例App

今天我們要為Apple Watch創(chuàng)建一個簡單的猜數(shù)游戲,游戲規(guī)則如下:Watch app會先確定一個0到5之間的自然數(shù),讓玩家進行猜測,然后檢測玩家是否猜中,顯示相應(yīng)信息。App界面如下:

QQ截圖20150320104131.png

創(chuàng)建WatchKit示例應(yīng)用

我想你已經(jīng)裝好了Xcode 6.2 beta 4(或更新版本),請用Single View Application模板新建一個項目,命名為WatchKitDemo(隨意命名即可),選擇語言為Swift,其他設(shè)置原封不動,項目保存在你喜歡的地方。

watch-kit-new-project.png

之前講過,Watch app是iPhone app的擴展,要想創(chuàng)建Watch app,請在Xcode菜單上選擇Editor > Add Target,然后選擇Apple Watch > WatchKit App,構(gòu)建Watch app必需的一切都可以用WatchKit App模板自動生成。

watch-kit-target.png

取消選擇Include Notification Scene,其他選項不變,點擊Finish,然后會彈出提示詢問是否激活新方案(scheme)。

watch-kit-warning.png

點擊Activate,即在Xcode項目中添加新方案,該方案可在Apple Watch模擬器中測試App。在項目導航欄中可以看到兩個新加的文件夾:WatchKit Extension還有WatchKit App。

watch-kit-new-folder.jpg

WatchKit app僅包含Storyboard和用戶界面相關(guān)資源,而負責應(yīng)用邏輯、更新界面的代碼位于WatchKit extension。簡而言之,Watch app提供展現(xiàn)信息的視圖、與用戶交互,而挑重擔的是iPhone app。

#p#

設(shè)計用戶界面

現(xiàn)在我們開始設(shè)計Watch app的用戶界面。選擇WatchKitDemo WatchKit App下的Interface.Storyboard文件,與iOS app類似,Xcode提供Storyboard來為Watch app設(shè)計用戶界面。

首先向界面控制器(Interface Controller)中拖入一個文本標簽(Label),你會發(fā)現(xiàn)它自動定位到視圖控制器的頂部,這是因為Apple Watch屏幕尺寸很小,界面控制器被分為上(TOP)、中(CENTER)、下(BOTTOM)三大區(qū)域。現(xiàn)在選中文本標簽,在屬性檢查器的Position欄下可以設(shè)置橫縱位置,把Horizontal和Vertical都設(shè)為Center。

然后把文本改為“Your guess is: 3”,如圖:

watchkit-demo-label.jpg

接下來我們要讓用戶修改猜想的數(shù)字,向界面中拖入一個滑動條(Slider),然后如圖修改滑動條屬性:

watchkit-slider.png

由于猜數(shù)在0到5之間,設(shè)步長(steps)為5,這樣滑動條就被分成了5格,每格代表一個數(shù)字。我們想讓3作為默認數(shù)字,設(shè)值(value)為0.6,最小值(minimum)為0,最大值(maximum)為1。

設(shè)置完畢后,從對象庫拖入一個按鈕(Button),設(shè)標題為Guess,將垂直位置設(shè)為Center。

要構(gòu)建完整的界面,我們還需要一個文本標簽,用來顯示用戶猜測結(jié)果是否正確。向視圖中拖入一個Label,設(shè)文本為“Press Guess to play”,然后修改垂直位置為Bottom,設(shè)字體的Min Scale(最小比例)為0.5,讓文本適應(yīng)較窄的空間。最終設(shè)計如下:

QQ截圖20150320104842.png

代碼時間

好,搭完界面,開始寫代碼吧。前面說過,程序邏輯在WatchKit Extension中。InterfaceController.swift已經(jīng)關(guān)聯(lián)剛剛設(shè)計完的Interface Controller。

打開源碼文件,為文本標簽和滑動條分別創(chuàng)建outlet,然后在InterfaceController類中添加以下代碼:

 

  1. @IBOutlet var guessSlider: WKInterfaceSlider!         // the slider  
  2. @IBOutlet var guessLabel: WKInterfaceLabel!     // the label displaying the guess number  
  3. @IBOutlet var resultLabel: WKInterfaceLabel!    // Wrong/Correct Label 

 

然后是這行代碼,創(chuàng)建猜測數(shù)字的變量:

 

  1. var guessNumber = 3 

 

項目基礎(chǔ)設(shè)施創(chuàng)建完成,現(xiàn)在把界面元素連接到相應(yīng)的outlet。切回Interface.storyboard,開啟輔助編輯器,顯示剛剛在寫的代碼文件,然后分別連接outlet和相應(yīng)控件。

22.png

現(xiàn)在按住control從滑動條拖到代碼上,這次不是IBOutlet,選IBAction,命名為updateGuess。


 

24.png

會自動添加如下函數(shù):

  1. @IBAction func updateGuess(value: Float) { } 

該方法將用于獲取用戶猜測的數(shù)字并更新文字提示,在其中插入這兩行代碼:

  1. guessNumber = Int(value * 5)  
  2. guessLabel.setText("Your guess: \(guessNumber)"

由于之前滑動條取值范圍被設(shè)為0到1,取值乘5所得才是我們實際需要的數(shù)字,隨后更新文本標簽。

按住control從按鈕拖到代碼,再創(chuàng)建一個action方法,命名為startGuess,該方法生成一個隨機數(shù)并與猜測數(shù)進行比較,并更新提示內(nèi)容,代碼如下:

  1. @IBAction func startGuess() {  
  2.     var randomNumber = Int(arc4random_uniform(6))  
  3.        
  4.     if(guessNumber == randomNumber) {  
  5.         resultLabel.setText("Correct. You win!")  
  6.     } else {  
  7.         resultLabel.setText("Wrong. The number is \(randomNumber)")  
  8.     }  

代碼中首先使用arc4random_uniform(6)函數(shù)生成一個0到5的隨機數(shù),然后進行比較,顯示結(jié)果。

搞定。可以測試App了。

運行Watch App

要想運行App,請選擇“WatchKitDemo WatchKit App”方案,然后指定運行設(shè)備,點擊運行按鈕測試應(yīng)用。在模擬器中還可以由Hardware > External Displays > Apple Watch - 38mm切換屏幕尺寸。

watchkit-simulator.jpg

不錯吧?WatchKit初上手感覺如何?此處可以下載項目文件,以供參考。(譯注:下載鏈接源為Dropbox,中國大陸需要翻墻。)

原作者:julian engel  譯者:@TurtleFromMars
 

原文:WatchKit Introduction: Building a Simple Guess Game

責任編輯:林師授 來源: appcoda
相關(guān)推薦

2019-09-23 09:11:02

Python文本編輯器操作系統(tǒng)

2023-02-07 10:40:30

gRPC系統(tǒng)Mac

2009-08-19 04:14:00

線性鏈表

2021-01-01 19:30:21

Python編程語言

2021-02-05 16:03:48

JavaScript游戲?qū)W習前端

2009-09-11 09:11:09

2011-07-28 15:07:23

iOS猜數(shù)游戲

2021-01-03 16:30:34

Rust編程語言

2021-01-14 08:55:20

C語言編程

2014-11-20 16:02:22

WatchKit

2021-04-22 09:57:37

Random方法游戲

2011-04-08 10:29:04

AccessMIS管理系統(tǒng)

2023-04-04 09:15:10

NAPI 框架鴻蒙

2011-03-15 19:45:27

Windows Azu

2013-02-20 14:13:42

移動游戲十三歲

2021-01-05 12:38:53

C++編程語言軟件開發(fā)

2011-03-24 09:34:41

SPRING

2023-02-27 09:31:00

streamlitst.sidebar菜單

2014-11-20 15:44:40

Apple Watch

2015-01-21 16:35:49

Apple WatchWatchKit
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 国产精品美女久久久免费 | 国产91黄色 | 亚洲国产一区在线 | 日韩成人在线免费视频 | 日本高清视频网站 | 精品91视频 | 中文字字幕在线中文乱码范文 | 在线视频91 | 黑人精品欧美一区二区蜜桃 | av一区二区三区四区 | 黑人巨大精品欧美一区二区一视频 | 国产精品伦一区二区三级视频 | 婷婷91| 久久91| 成年人视频免费在线观看 | 欧美一区二区三区日韩 | 成人精品鲁一区一区二区 | 中文字幕四虎 | 国产成人精品网站 | 天天草草草 | 欧美成人精品激情在线观看 | a级毛片毛片免费观看久潮喷 | 可以在线观看av的网站 | 久久99精品久久久久久国产越南 | 蜜臀久久 | 免费毛片网站在线观看 | www.操com | 天天射天天干 | 久久久久久久久久一区二区 | 中文成人在线 | 欧美日韩亚洲国产综合 | 久草.com | 精品欧美乱码久久久久久 | 国产日韩欧美 | 亚洲精品中文字幕在线观看 | 亚洲精品亚洲人成人网 | 亚洲国产精品日本 | 午夜精品一区二区三区在线视频 | 欧美一区二区三区在线观看视频 | 欧美一级二级在线观看 | 精品视频久久久 |