WatchKit Storyboard攻略(一)

jopen 9年前發布 | 15K 次閱讀 WatchKit iOS開發 移動開發

目前的WatchKit只有用戶界面的渲染是靠AppleWatch進行,本文的目的主要在于探索WatchKit界面部分的功能開發與小技巧,內容層次上偏基礎。

我們現階段能用到的WatchKit是不完全體,能定制的界面元素都在唯一的Storyboard文件里,但是仔細一看我們就發現,XCode6.2里Watch的Storyboard和iPhone里的完全是兩碼事,且可動態交互的內容極少。

但是也不要氣餒,至少在界面元素的排版方面,比起iPhone用的傳統Storyboard其實更加簡便。

首先我們了解一下WatchApp的界面組成的基本概念。我們知道,WatchKit目前提供的三種Storyboard模板有WatchApp用的Main模板、瞥覽的Glance模板與靜態/動態通知模板。這里重點先看一下Main模板,其實它分為兩個部分--標題欄與內容frame,對于42mm和38mm的Watch來說,其尺寸是有區別的,見圖1與圖2:

WatchKit Storyboard攻略(一)

圖1 42mmAppleWatch界面尺寸與分辨率

WatchKit Storyboard攻略(一)

圖2 38mmAppleWatch界面尺寸與分辨率

紅色表示標題欄,我們目前唯一能做的似乎就是設定標題文本。

WatchKit Storyboard攻略(一)

不過還好也可以通過在ViewController的代碼里通過setTitle來動態改變標題內容,顏色也是可以通過Global Tint來改變的。

黃色部分是我們可以真正掌控的部分,在ViewController的代碼里可以通過contentFrame屬性進行訪問(小小的表盤被標題占用了那么多空間- -!)。

WatchKit Storyboard攻略(一)

XCode里針對Storyboard剩余能設置的屬性都是針對它的了!我們可以設置Background定義背景圖,指定圖的多種顯示模式(默認都是ScaleToFill,好處后面說),并通過設置Animate為true來實現在背景上自動播放圖片幀動畫。Insets設置為Custom后可以設置視圖上下左右留白的空間,默認值都是0。

下面就是本文重點部分了,還是以一個實際的應用場景講一下更多控件元素的具體使用和排版技巧:

比如說我們要做一個手表程序的啟動畫面和菜單,構思如下圖(程序名Logo部分應與頂部間距40px,與左右邊緣需要保持間距20px,水平位置居中;2個菜單項寬度180px,也是水平居中,垂直方向與底部間距24px)。為了精致我為程序名和菜單會制作一些圖片資源。但很快就意識到了麻煩,前面已經發現2種大小的AppleWatch分辨率是不同的,這意味著如果做兩種設備的適配并保持此排版,圖片通常思路下是需要2種尺寸的。

WatchKit Storyboard攻略(一)

其實完全沒有必要,使用WatchKit專用的Storyboard布局功能僅使用一套資源圖片就可以輕松的解決統一排版問題,這也將減少圖片傳輸帶來的開銷并節省Watch寶貴的存儲空間。

我們新建一個項目并加好WathApp的target,打開Inteface.storyboard文件,在Main模板里設置InterfaceController的Insets為Custom并按如下設置邊距。

WatchKit Storyboard攻略(一)

這里要注意的是AppleWatch使用的是2倍像素密度圖像資源,Top的值減去了標題欄的38像素。

再拖一個Group控件上去,作為主要界面元素的容器。設定其Size的Width和Height均為Relative to Container,系數保持缺省值1,效果立現。

WatchKit Storyboard攻略(一)

Relative to Container的作用是設定控件的Width屬性或Height屬性占父容器的比例(1代表100%)。

把Group的Layout設置為Vertical垂直排列,再加3個Image上去代表logo和2個按鈕。

WatchKit Storyboard攻略(一)

先來看看logo,我們現在邊界已經確定好,因此只要它寬度與Group保持一致就行,而不同的設備,用控件自帶的Scale功能就好!高度它可以自己計算!

WatchKit Storyboard攻略(一)

運行程序并分別選用42mm和38mm設備,發現logo圖確實是在保證邊距的情況下在38mm設備上縮小了。

本文的情景里對于菜單按鈕要求有點區別,為保證用戶能方便按到按鈕,按鈕大小是必須保證的。因此這里我們設置2個按鈕Image的size為fixed width與fixed height并填好圖片對應寬高,并設置Position位置為向底端對齊。

WatchKit Storyboard攻略(一)

預覽里已經可以看到效果了,如果要修改2個按鈕之間的間隔,修改Group的spacing值就OK了。

運行2種設備比較一下:

WatchKit Storyboard攻略(一) WatchKit Storyboard攻略(一)

現在這套方案還是很簡單的,按42mm的大尺寸設計,依據需求靈活對屬性進行設置選擇縮放或者固定尺寸,并利用Group進行各種對齊等等,跟Html排版很類似。

先就說這么多吧,也沒有太多體系化的東西。主要還是靠自己的應用場景去設計并調整實踐才能有更好的心得體會。

(原文:臺偉的Lofter)

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!