Apple Watch 1.0 开发介绍 2.1 WatchKit Apps UI要点
实现app的开始是定义storyboard场景。每个场景定义了app的一部分界面。可以为不同的尺寸自定义场景。
组装storyboard界面
WatchKit app和iOS app的布局模式不同。组装WatchKit app界面时,并不是把元素在一个空间里任意层次结构的摆放,而是把元素添加到场景,Xcode会管理他们,一行一行的竖直堆在上面。运行时,Apple Watch会根据可用的空间布局他们。
虽然Xcode处理了整体布局,WatchKit也提供了在场景中微调元素的方式。调整最多的是元素的大小和位置。可以改变元素的位置也可以改变水平竖直对齐方式。大小的话可以指定一个宽度或者让它根据可用的空间自己计算宽度。
Group对象提供了另外一种布局界面的方法。Group元素是其他元素的容器,可以在group中水平或竖直布局元素。可以group嵌套group然后用间距来改变他们的大小和位置。Group没有默认的可视图像,但是可以配置它的背景颜色或者图片。
下图展示了一个storyboard中的布局。前三个元素是标签,他们有不同的对齐方式。标签下面是一个包含两个图片水平布局的group对象。这个界面也包含了一个分割线还有一个按钮在group对象下面。

在Xcode中创建界面时,尽量让元素在有可用空间时自己调整位置。界面应该适应Apple Watch不同的尺寸。让系统自动布局可以减少为每种尺寸写布局的工作量。
适应不同的尺寸
Xcode支持为不同尺寸的Apple Watch自定义界面。默认情况下在storyboard中改变的尺寸会影响所有的尺寸,但是也可以在storyboard中为特定的尺寸定义。比如,可能需要在不同的尺寸上微调元素的大小或者指定不同的图片。
要定义指定的设备尺寸,点击属性旁边的(+)按钮然后选择特定的尺寸。对特定尺寸的更改只影响这个尺寸。下图显示了在Apple Watch 42mm上文字的缩放。

不应该让用户在不同的尺寸上感觉到明显的差异,尽量缩小不同尺寸设备上的差异。虽然可以每种尺寸单独实现一套界面,但是不推荐这样做。尽量所有尺寸使用一套界面。
要查看不同尺寸上的效果的话,可以使用storyboard底部的按钮来切换设备尺寸。storyboard默认显示通用尺寸。在通用尺寸下的更改会影响所有尺寸。如果切换到特定的模式下, 这时候的改变只影响那个尺寸。
运行时更新界面
在运行时,界面控制器可以对storyboard场景对应的对象做下面的操作:
- 设置或更新数据的值
- 改变界面的样子,如果对应的对象支持的话
- 改变对象的大小
- 改变对象的透明度
- 显示或隐藏一个对象
不能添加新的对象或者改变已有对象的顺序。虽然不能移除对象,但是可以隐藏它,这样可以临时不显示在界面上。当一个对象隐藏时,其他对象会占据这个对象以前占据的空间。如果要隐藏对象但是要保留位置,可以设置对象的透明度为0.
设置App的主题颜色
每个WatchKit app都有一个相关的主题颜色,会影响下面的UI元素:
- status bar上的标题
- short-look通知的app名字
app的主题颜色存储在storyboard的全局属性里。要访问这个属性的话, 选择storyboard然后选择File inspector。选择弹出菜单中的颜色,或者使用颜色选择器选择指定的颜色。
为界面国际化
WatchKit app的storyboard默认就启用了国际化。这会导致任何加到storyboard中的字符串会自动加到Localizable.strings文件中。只需要为特定语言翻译文件中的字符串,然后在发布的app中引用他们。当在运行时创建storyboard中的场景时,Xcode会加入对应的本地化后的字符串。
注意像label喝controls这类的UI控件有足够的空间显示。相对于把多个按钮放在同一行,把他们放在多行这样他们有足够的空间显示。
对于用程序设置的文字和图片,使用iOS和OS Xapp中同样的方法来国际化。
- 使用NSLocalizedString来加载字符串资源
- 使用NSNumberFormatter对象来格式化数字
- 使用NSDateFormatter对象来格式化时间。
使用WatchKit extension时,NSLocal对象会返回Apple Watch中配置的地点信息。使用这个类来获得用户选择的语言,以及备选语言,以及地点相关的信息。
Apple Watch 1.0 开发介绍 2.1 WatchKit Apps UI要点的更多相关文章
- Apple Watch 1.0 开发介绍 1.2 简介 配置Xcode工程
WatchKit app需要一个现有的iOS app.在iOS app工程中,添加一个新的WatchKit app target,它包含了WatchKit app和WatchKit extension ...
- Apple Watch 1.0 开发介绍 1.1 简介 开发苹果手表
使用Apple Watch,用户可以使用一种不显眼的方式查看信息.不用把iPhone从口袋里拿出来,就可以通过看一下手表快速获得重要信息. 作为Apple Watch的第三方app开发者,应该通过使用 ...
- Apple Watch 1.0 开发介绍 1.4 简介 使用iOS技术
WatchKit extension可以使用iOS app同样的技术,但是由于他是extension,使用有些技术的时候会有限制,有些不推荐使用.下面是一些介绍以及什么时候使用什么技术: 有些需要权限 ...
- Apple Watch 1.0 开发介绍 1.3 简介 WatchKit App 架构
WatchKit app和WatchKit extension一起实现了app的界面.当用户在Apple Watch中操作时,WatchKit app从storyboards中选择合适的场景.比如,如 ...
- android 蓝牙4.0 开发介绍
最近一直在研究一个蓝牙功能 由于本人是菜鸟 学起来比较忙 一直搞了好久才弄懂 , 网上对蓝牙4.0也就是几个个dome 抄来抄去,全是英文注解 , 对英语不好的朋友来说 真是硬伤 , 一些没必要的描 ...
- 从0开发3D引擎(补充):介绍领域驱动设计
我们使用领域驱动设计(英文缩写为DDD)的方法来设计引擎,在引擎开发的过程中,领域模型会不断地演化. 本文介绍本系列使用的领域驱动设计思想的相关概念和知识点,给出了相关的资料. 上一篇博文 从0开发3 ...
- 从0开发3D引擎(二):准备预备知识
大家好,本文介绍了开发3D引擎需要的预备知识,给出了相关的资源. 上一篇博文 从0开发3D引擎(一):开篇 了解Web 3D Web 3D的历史 目前Web 3D是基于WebGL这个Web端3D AP ...
- 从零开始编写自己的C#框架(6)——SubSonic3.0插件介绍(附源码)
前面几章主要是概念性的东西为主,向初学者们介绍项目开始前的一些知识与内容,从本章开始将会进入实操阶段,希望跟着本系统学习的朋友认真按说明做好每一步操作(对于代码最好是直接照着文档内容在你的IDE中打一 ...
- 【转载】Ssh整合开发介绍和简单的登入案例实现
Ssh整合开发介绍和简单的登入案例实现 Ssh整合开发介绍和简单的登入案例实现 一 介绍: Ssh是strtus2-2.3.1.2+ spring-2.5.6+hibernate-3.6.8整合的开 ...
随机推荐
- B. 沙漠之旅(分组背包)
B. 沙漠之旅 Time Limit: 1000ms Case Time Limit: 1000ms Memory Limit: 65536KB 64-bit integer IO format: % ...
- SE 2014年4月16日
一. 描述BGP路由协议中 BGP路由携带 AS-PATH/ next-hop / ORIGIN / local-preference 属性的特点! BGP协议中的AS-PATH是AS列表,用来 ...
- 最锋利的Visual Studio Web开发工具扩展:Web Essentials详解
原文:最锋利的Visual Studio Web开发工具扩展:Web Essentials详解 Web Essentials是目前为止见过的最好用的VS扩展工具了,具体功能请待我一一道来. 首先,从E ...
- Hdu 3410 【单调队列】.cpp
题意: 给出一个数组,问你对于第i个数,从最后一个比它大的数到它之间比它小的数中最大的那个数的下标,以及它右边到第一个比它大的数中比它小的数中最大的那一个数的下标<下标从1开始>. eg: ...
- Uva10290 - {Sum+=i++} to Reach N
Problem H {sum+=i++} to Reach N Input: standard input Output: standard output Memory Limit: 32 MB A ...
- redhat linux 5上创建本地yum源
1.挂载光驱 [root@rh5rac1 ~]#mkdir -p /mnt/cdrom [root@rh5rac1 ~]#mount /dev/cdrom /mnt/cdrom 2.将redhat光盘 ...
- Trie图和Fail树
Trie图和AC自动机的区别 Trie图是AC自动机的确定化形式,即把每个结点不存在字符的next指针都补全了.这样做的好处是使得构造fail指针时不需要next指针为空而需要不断回溯. 比如构造ne ...
- Android 访问Android Wear数据层Api——同步Data Items
Data Items它被用来同步手机和wear数据接口,一个Date Items通常包含以下几个部分: Payload 字节数组.无论你需要设置数据类型,我们同意对象序列化和反序列化,大小不能超过10 ...
- HDU 1201
18岁生日 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Subm ...
- 【剑指offer】设置在最小数目的阵列
转载请注明出处:http://blog.csdn.net/ns_code/article/details/28128551 题目描写叙述: 输入一个正整数数组,把数组里全部数字拼接起来排成一个数.打印 ...