APPLE WATCH 中文手册:WatchKit Apps--App概要

1418700829160873

原文:Apple Watch Programming Guide:App Essentials

Xcode支持用storyboard来创建Watch app的界面。当你在工程中新建一个Watch app,Xcode提供会提供一个storyboard来实现你的UI。这个Storyboard至少有一个Watch app的界面场景,并可能有额外的快速预览(glance)或通知界面场景。你可以从界面控制器中的对象库中拖动到storyboard的场景中。

Storyboard中的每个场景以相应的WKInterfaceController子类为支持(对于动态通知界面,子类是WKUserNotificationInterfaceController)。 对于每一个新的场景,可以在标识检查器(Identity inspector)中输入你界面控制器的名字。 每个界面控制器的代码都在WatchKit的扩展目标中运行,不用在你的Watch app中引入任何代码。

界面控制器怎样工作(How Interface Controllers Work) 

界面控制器(Interface controller)管理你storyboard的场景内容。每个界面控制器都使用outlet来保存场景中的引用对象,并定义action方法来响应用户交互。在运行时,你可以使用界面控制器的initWithContext:willActivate方法来配置界面。在这些方法里,你的操作任务如下:

  • 获取你想展示的数据。
  • 设置初始化和配置标签,图片和其他控件。
  • 根据你的需要,展示或隐藏你的界面对象。

这里没有限制Watch app中能拥有的界面控制器数量,但是过多的界面控制器意味着更复杂,所以要尽可能精简。您为app选择的导航类型定义了用户怎样从一个界面跳入下一个。有些导航类型需要你清晰的展示下一个界面控制器,而有些不用。更多关于两个场景间导航的信息,请查阅Interface Navigation.

整合你的故事版场景(Assembling Your Storyboard Scenes)

Watch app不使用iOS app那种布局模型。当你整合你的Watch app的界面场景,你无法在充足的空间里通过任意的布局元素来创建视图层级。相反,当你添加元素到场景,Xcode列出许多选项给你,垂直地叠放在不同的行中。在运行时,Apple Watch会根据可用空间将这些元素平铺出来。

WatchKit也提供了几种在storyboard场景里更精确的布局方法。大多数视图元件的size和position都可以在属性监视器(Attributes inspector)里配置。对象组群提供了另一种重要的工具来布局组件,及允许你像垂直布局那样水平布局你的元素。组群还提供额外的选项来布局组群的边界内组件。组群没有默认的视觉呈现形式,但可以按你自己的想法配置背景颜色或者背景图。

图5-1展示了排列在storyboard文件中的几种不同元素。前三个元素都是标签,它们每个都占用了自己那一行的全部水平宽度。对于每个标签,对齐变量决定了视图控制器边框是向左对齐、向右对齐还是居中对齐。标签的下面是一组水平排列的包含了两张图的对象。界面还包含了一个开关、, 一条separator(分割线)和一个按钮,这些元素都垂直地堆叠在对象组的最下面。

图5-1 Xcode中的界面:

1418624421368753

当在Xcode中创建你的界面时,尽可能地让对象自己调整尺寸来适应可用空间。App界面应该可以运行两种尺寸的Apple Watch。让系统调整对象尺寸来适应可用空间,这样可最小化为每款设备编写的代码量。

在运行时更新界面(Updating Your Interface at Runtime)

在运行过程中,界面控制器能让对象在相应的storyboad场景中做如下改变:

  • 设置或修改数据变量
  • 支持改变对象的外观
  • 改变对象的尺寸
  • 改变对象的透明度
  • 显示或隐藏对象

你不能添加新的对象到界面或者改变已经存在对象的次序。尽管你不能移除对象,但你可以通过隐藏对象来暂时从图层中移除。当控件被隐藏时,其他对象将会填充此前被占用的空间。 如果不想填满这些空间,可以把对象的alpha值设置为0。 更多关于隐藏场景对象的信息请查阅Hiding Interface Objects

界面的国际化(Internationalizing Your Interface) 

WatchKit app的storyboard是默认基于国际化的。这个特性会使在storyboard中任意的字符串都被自动的添加到__Localizable.strings__文件中。 您唯一要做的工作就是针对每种目标语言翻译文件中的字符串,并将其包含到应用程序中。 当在运行时创建storyboard场景时,Xcode会插入与本地化相关的文件。

当考虑国际化你的app时,您主要考虑的是如果排布你的界面,让包含文本的标签和控件能有足够的空间进行扩展。您可以垂直布局界面元素以便有足够的空间展示其标题,而不是把多个按钮放在同一行中。

对于文本和图片的国际化处理,可以使用iOS和OS X应用相同的技术。

更多信息详见国际化处理Internationalization and Localization Guide

原创文章,作者:ioued,如若转载,请注明出处:https://www.iamue.com/6250/

(0)
iouedioued
上一篇 2015-06-15 09:59
下一篇 2015-06-15 10:08

相关推荐

  • 多功能福彩APP用户体验调查问卷

    近日,湖南省福彩中心在全省7100多个彩站安装使用“智慧福彩APP”。该APP具有申领热敏纸、报修设备故障、发布活动公告、发布开奖公告、发布消息通知等功能,并服务于彩站具有各站点详情、销售目标、巡检劝人、评价管理员、问卷调查、意见反馈的功能,从而实现“福彩中心”、“市场管理员”、“彩站站主”、“彩民”、“社会公众”五者间的互通互联。彩站或彩民们有任何意见建议或技术方面的问题,均可通过该APP上报省中心,为中心机构与站主、彩民之间搭建了桥...

    2018-04-24
  • 那些经典交互设计流程与方法,真的足够好吗?

    在传统的交互设计 流程中,比较看重从设计目标建立到最终方案推导过程的逻辑性、终端用户体验与用户心理认知模型的匹配性等,相关的 UCD 设计方法 很多,而基本框架则是大同小异。在规模较大的公司与设计团队里,作为交互设计 师的我们也习惯了运用这种按部就班、环环紧扣的推导方式,帮助自己有理有据地应对各种「为什么这么做」的挑战。

    2017-05-25
  • 【Mockplus教程】重命名

    对页面和分组的重命名可以选中单个页面,然后使用F2进入名字修改状态,改完之后鼠标随便 点击其它地方即可完成修改。 对于选中页面也可以双击页面节点进入修改状态。 完整演示如下:

    交互设计 2015-09-10
  • 为什么用户会无视网站首页的轮播图?

    数据显示:在三百万个网站中只有大约1%的网站首页上的轮播图会被点击。一个在首页上如此之醒目的元素竟然只有这么低的点击率……到底怎么回事?个中原因相比会让你大吃一惊。

    2017-05-19
  • VUI语音交互设计:三步打造任务导向型对话场景

    语音交互的主要能力在于开放式domain的聊天型功能与任务导向的技能型功能。如果说快捷高效、轻松自然是语音交互的独特优势,那么任务导向型功能就是这些优势的完美落点,一个量好的语音交互产品,自然是技多不压身,能够cover的domain多越好,能够get的技能越强大越好。那么,作为语音产品设计人员,如何以短平快的方式设计一个任务导向型对话场景呢?当然,和传统交互设计工作一样,前期调研是很有必要的。你想设计的这个功能是否能满足产品目标、是否...

    2018-02-15
  • Axure官方教程中文版第6课:条件、值及变量-木卫艾欧网原译

    https://www.iamue.com/wp-content/uploads/video/Axure.com-learn(6).MP4 新建文件 1、添加一张图片和按钮 2、添加条件保证文本框不为空 3、文本框的变量值 4、添加打开“Page1”的动作 5、添加文本字段为空的第二个…

    2015-01-26
  • Hello UED!

    今天,UED.xyz正式上线,我们期待能尽快成长,以期能承担帮助国内交互设计师寻找灵感和创意的站点。 我们会专注交互设计,我们的域名是https://www.iamue.com和UED.xyz,请记住我们网站叫艾欧交互学堂。 如果有同学…

    交互设计 2014-09-02
  • 以文本框为例,了解交互设计师在工作中的逻辑思考方法

    文本框是设计工作中常见的组件之一,无论是PC还是无线,大多仅是样式上的不同,它们的交互行为上是可以相互参照的。本文想从这一简单的组件出发,让大家看到交互设计师在工作中的逻辑思考方法,从而达到见微知著的直观感受。

    2017-05-17
  • 移动端文字与排版设计的六个原则

    .space-betw {
    -webkit-box-pack: justify;
    -moz-box-pack: justify;
    -ms-flex-pack: justify;
    -webkit-justify-content: space-between;
    justify-content: space-between;
    }

    - (NSDictionary *)demoTextAttributes {
    NSMutableParagraphStyle *ps = [NSMutableParagraphStyle new];
    ps.alignment = NSTextAlignmentJustified;
    // here, NSBaselineOffsetAttributeName must be set though the default value is 0 to make the justified work.
    return @{NSParagraphStyleAttributeName :ps, NSBaselineOffsetAttributeName : @0.0f};
    }

    2017-05-31
  • 设计神器Figma出马!Sketch、PS有些慌了,因为...

    这年头真的是“长江后浪推前浪,一浪更比一浪强”,许多新产品、新工具纷纷冒出头来,就拿我们设计师的设计工具来说吧,Photoshop 算是一名老将了,它也是我们走上设计不归路的第一个敲门砖(当然还有 CDR);被 PS 折磨的要死要活的时候 Sketch 和 Affinity 杀了出来,一个是专攻用户界面的矢量设计,另一个则像是加强版的 PS 和 AI;Sketch 和 Affinity 还没用熟又冒出个 Figma:说出来你可能不相信,...

    2018-04-17