Apple Watch开发文档--5

UI要领

开始实现你的app的第一步是定义你的故事板情景.每个情景规定了你的app界面的一部分.你可以为不同大小的apple
watch定制情景,你可以配置你的界面某些东西.

组装你的故事板情景

WatchKit app不使用和iOS app一样的布局模型. 当你组装WatchKit app的界面情景时,你不需要在可用的空间上随意的放置元素来创建View的层次. 相反,当你增加元素到情景时,Xcode自动为你安排元素,把他们垂直的嵌入到不同线里. 在运行的时候,Apple Watch依靠可用的空间放置这些元素.

尽管Xcode完全负责你的界面布局,WatchKit提供了调整好情景中的元素方法.大部分元素的大小和位置可以通过属性检测器来调整. 一个元素的位置改变,让你在元素堆栈中设置那个元素当前位置的水平和垂直对齐方式.改变大小的选项允许你指定元素的宽度,或者在可用的空间里面自适应大小.

组对象提供了另一种重要的安排界面里的元素的工具.组元素是存放其他元素的容器,给你提供了在组里安排元素的水平和垂直位置. 你可以在组里嵌入其他组,使用每个组的空间和边距值来调整元素的位置和大小.组没有默认的可视表现形式,但是你可以给它配置一个背景色和你想要的图片.

图5-1 展示了如何在故事板文件里面安排不同的元素.与界面控制器有这不同的对其方式的是三个标签元素. 这些标签下面是包含两个水平对齐图片的组对象.这个界面保护一个分隔符,和一个垂直嵌在组对象下面的按钮.

Xcode中的界面控制器

        图5-1 Xcode中的界面控制器

当你在Xcode中创建界面控制器的时候,在任何时候,让你的对象在可用的空间上自动调整本身的大小.app的界面应该能够运行在不同大小的apple watch上. 让你的系统自动调整对象的大小去满足可用空间,减少了你手动为每种设备写定制代码的代码量.

推荐的不同展示大小

Xcode支持你不同的apple watch大小的界面定制化. 你在故事板编辑器里面做的任何改变都默认的适配所有大小的apple watch,当然,你为了需要可以单独为不同的设备定制故事板.例如,你可能对空间做一个最小的调整来布局这些对象,或者对不同设备配置不同的图片.
对固定的设置大小定制一个对象,使用属性检查器中的+号按钮来覆盖给定的属性值. 点击+号按钮增加一个新设备的属性入口. 对它所做的改变只影响你选择的那个设备的属性. 图5-2展示了在一个42毫米的watch时,文本的缩放比率.

定制不同设备的属性

用户不应该察觉到在不同大小设备上,app界面有重大的不同. 因此,你应该尽量少的为不同的大小设备做定制化. 任何时候,限制界面的相对空间和距离布局的改变.尽管可以在不同布局下,可以移除界面上的对象,但是我们不推荐这么做.尽量在不同大小的watch上使用同一种界面对象.

去看不同大小的设备上的定制,可以使用故事板下面的控制器去触发不同的设备大小. 故事板编辑器默认展示了所有设备大小. 所有的改变都应用到所有watch的大小上. 如果你改变展示模式去适配固定的大小,你的改变只会对你指定那个设备起作用.

运行期更新界面

在运行期,界面控制器可以对其相关的故事板情景的对象做如下的修改:
* 设置或更新对象的值
* 改变对象的外观样式
* 改变对象的大小
* 改变对象的透明度
* 展示或者隐藏对象

你不能在界面上增加新的对象,或者改变已经存在的对象的顺序.尽管你不能够移除对象,但你可以隐藏他们,相当于从临时布局中移除他们. 当这个对象被隐藏的时候,其他对象占用原来那个对象的空间. 不填充空间的隐藏对象,可以设置透明度为0. 关于更多隐藏对象的信息,看这里.

设置你的app关键色

每一个WatchKit app都有一个相关的关键色,应用到下面的UI元素.
* 在状态栏中标题字符串
* 在短暂的通知中app的名字

一个app的关键色被存放在app故事板的全局tint属性中. 选择故事版和展示文件检测器来访问这个属性. 在一个弹出菜单中选择一个已经存在的颜色,或者使用颜色选择器指定一个具体的颜色.

国际化你的界面

WatchKit app中的故事板默认支持国际化. 这个特性使得故事板中的字符串自动添加到你的工程Localizable.strings里面. 简单的翻译为某个目标语言翻译字符串,在你的app中添加. 当你在运行器创建故事板时,Xcode 会插入相关的字符串.

安排你的界面以便标签和控件包含的字符串可以扩展. 不要在同一行放置多个按钮,把他们垂直的放置以便他们有足够的空间展示标题.

你动态的指定的文本和图片,在iOS和OS X app中使用同样的国际化技术.

  • 使用NSLocalizedString宏从资源文件中加载字符串.
  • 使用NSNumberFormatter对象去格式化数字值.
  • 使用NSDateFormatter对象格式化日期.

当在WatchKit extension中使用时,NSLocale对象返回在用户Apple Watch上配置的本地信息. 使用这个类来获取用户偏好的,其他的语言和本地相关的信息.
关于更多国际化app的信息,看这里.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值