APPLE WATCH 中文手册:Watch APPS-文本和标签、Watch APPS-图片

文本和分类标签

为了在Watch app中展示文本,使用标签对象。分类标签支持格式化的文本,可以在运行时被程序修改。

要添加标签到界面控制器,可以把它拖到对应的故事版场景(storyboard),在这里指定标签的初始文本字符串和格式。WatchKit既支持标准的字体也可以自定义字体。图8-1展示了你可以使用的标准字体风格。

图8-1标签的标准字体风格

APPLE WATCH 中文手册:Watch APPS-文本和标签、Watch APPS-图片

更多关于配置标签对象的信息,请查阅 WKInterfaceLabel Class Reference

Using Custom Fonts 使用自定义字体

除了标准字体风格,你可以定制经过格式化的字符串的字体。按照下面的方式来定制字体:

· 在Watch app和WatchKit扩展包中都导入定制的字体文件。

· 添加__UIAppFonts__键到你的Watch app中的Info.plist文件中,并用这个来指定添加到包中的字体。更多关于此键的信息,请查阅 Information Property List Key Reference

注意:你必须在WatchKit扩展中导入字体,才能在运行时创建指定字体的字符串。当发送到Apple Watch的时候,字体的信息包含了属性字符串,在Watch app包中的字体拷贝将会渲染这个字体。

使用自定义字体来格式化文本,使用字体信息来创建一个属性化字符串,并使用这个字符串来作为你标签的文本,就像Listing 8-1中展示的那样。字体的名字和尺寸由属性字符串编码而成,这样就可以用来更新用户Apple Watch的标签了。

使用自定义的字体作为标签的字符串

     // Configure an attributed string with custom font information.
     UIFont* menloFont = [UIFont fontWithName:@"Menlo" size:12.0];
     NSAttributedString *attrString = [[NSAttributedString alloc]
       initWithString:@"My Formatted Text"
       attributes:@{NSFontAttributeName: menloFont}];
 
     // Set the text on the label object.
     [self.myCustomFontLabel setAttributedText:attrString];

Customizing the System Font 自定义系统字体

自定义系统字体,使用UIFontDescriptor对象来指定基于系统的新字体。列表 8-2 的例子展示了怎样让定制只使用小写字符的标准的系统字体。在转换系统字体到一个字体描述符后, 添加__kLowerCaseType__和__kLowerCaseSmallCapsSelector__属性(在Core Text framework中定义)然后字体描述符的结果来创建新的字体对象。

指定系统字体为小写

     CGFloat fontSize = 18.0;
     UIFont *afont = [UIFont systemFontOfSize:fontSize];
     UIFontDescriptor *fontDescriptor =
          [[afont fontDescriptor] fontDescriptorByAddingAttributes:@{
          UIFontDescriptorFeatureSettingsAttribute : @[
             @{    UIFontFeatureTypeIdentifierKey : @(kLowerCaseType),
          UIFontFeatureSelectorIdentifierKey :      @(kLowerCaseSmallCapsSelector) },],
     }];
 
     UIFont *smallCapFont = [UIFont fontWithDescriptor:fontDescriptor size:fontSize];

国际化您的文本代码

Watch apps能使用iOS apps想通的国际化技术方法。

· 使用基于Xcode国际化支持的storyboard和xib文件。基于国际化可以让你仅仅只用一个storyboad文件就能支持所有的本地化。本地化字符串分别存在特定的区域语言字符串中。

· 使用NSLocalizedString族的宏定义来让程序自动检索本地化字符串。

· 通过NSNumberFormatter类使用用户所在区域和本地的设置来格式化数值型的值。

· 通过NSDateFormatter类使用用户所在区域和本地设置来格式化时间。

当要国际化你的应用,你主要考虑的是如何调整界面,让标签列表(还有其他文本的控制)能够足够容纳得下。比如,比起水平的排列三个按钮,垂直排列更好能给每一个标签的文本提供更长的容纳空间。

更多关于国际化的信息,请查阅Internationalization and Localization Guide

----------------------------------------------------------------------------------------------------------

图像

WatchKit(苹果手表开发套件)提供下列方法将图片添加到你的内容里:

· WKInterfaceImage用于展示单个的图片或者一组图片作为单个图像展示的内容。

· WKInterfaceGroupWKInterfaceButtonWKInterfaceController类允许你指定一张图作为某些内容的背景图。

指定你的图像资源

下面是当你创建图像资源时要注意的准则:

· 尽量只用PNG的格式的图。

· 保证创建的图像的尺寸是符合你的界面的。对于你不好控制的图像,使用setWidth:setHeight:方法来做自适应。

使用命名的图片来提高执行效率

下面是几种更换界面对象现有图片的方式:

·  使用 setImageNamed:setBackgroundImageNamed:方法来分配一个已经存在于Watch app资源包里,或者是正在设备缓存中的图像。

· 使用WatchKit的setImage:setImageData:setBackgroundImage:setBackgroundImageData:方法无线传输图像数据来扩展你的Watch app。

用命名指定图像的好处是这些图不需要再从用户的iphone中无线传输到手表。当你指定了图片的命名,WatchKit只发送名称字符串到你的Watch app中,这样减少了时间和功耗。这个字符串用来检索Watch app包中的图像,或者从图片缓存中去取得。

任何时候你在你的扩展中创建的__UIImage__对象,必须要先将存在于用户的iPhone上的图像对象发送到Apple Watch上才能使用。甚至使用__UIImage__的 imageNamed:方法来加载你的WatchKit扩展包资源,也不是从Watch app中得到的。

在设备上缓存图像

如果你频繁使用在你WatchKit扩展中创建的图像,可以把它们缓存到设备里,然后通过名称来引用。你必须在调用它们之前先缓存图片,使用__WKInterfaceDevice__的addCachedImage:name:addCachedImageWithData:name:方法。

使用缓存图片需要注意以下两点:

· 对于WKInterfaceImage对象,调用__setImageNamed: __方法,指定缓存图像的名称。

· 对于WKInterfaceGroupWKInterfaceButton对象,调用__setBackgroundImageNamed:__方法,指定缓存中的名称

Apple Watch图像的缓存是限制尺寸的,每个app大概可获得20MB的缓存空间。缓存是持久的并可以在启动的Watch app之间使用。当你达到最大缓存时,WachKit会丢弃比较老的图像,把空间让给新分配的图像。

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

(0)
iouedioued
上一篇 2015-06-15 09:45
下一篇 2015-06-15 09:55

相关推荐

  • 腾讯MXD:资讯app为什么都长一个样?

    作者: Celine Wang@腾讯MXD   打开手机,国内的资讯 app 除了品牌 logo 外,几乎都长一个样。就如你敲开不同的门,发现房间不光装修风格一样,还住着品味雷同的主人。是什么造就了它们? 资讯产品的本质是连接内容…

    交互专题 2023-03-03
  • 用好这些可用性原则,你就能简单做好交互设计!

    做产品经理不懂交互设计,那就是寸步难行。“交互原则多,体验出彩少”,既然要做好产品体验,那么吃透基本的交互设计原则,就是必须且必然的事儿。今天给大家挖了很多可靠的栗子,直接给你提供干货,拿走不谢。

    2017-05-20
  • 芝加哥艺术学院交互设计硕士成功案例

    等你点蓝字关注都等出蜘蛛网了学生档案毕业院校:北京某大学本科专业:网络设计本科平均分:3.45申请学位:硕士申请专业:交互设计TOEFL:95GRE:无案例回放W同学是2015年10月底进入公司服务体系的,想要申请2017年秋季入学的设计类相关专业。通过第一次电话联系,名校规划导师了解到W同学的基本情况是:北京某大学网络设计专业学生,GPA:3.45,TOEFL:77分,没有GRE成绩。再通过头脑风暴课上的深入挖掘,名校规划导师更全面更...

    2018-04-26
  • 【干货】学交互设计,毕业以后该做些什么呢

    大家对于交互设计有没有基本的认识,上一次的文章中给大家有过简单的介绍。平时和朋友同学之间再聊到交互设计,会觉得,交互设计都是app网站,但是随着科技的发展交互设计行业涉及很多方面,也有很多新的变化。所以在2018年之后,交互设计会有新的一些行业趋势。全感官体验因为未来找设计会越来越脱离我们所认知的app界面,会从app界面转移到其他的媒介上面去和其他设备上去做交互。全感官体验,因为平时我们都是从视觉上面去或者其他界面上做一个新的交互设计...

    2018-04-25
  • 设计基础:细说“十大可用性原则”

    “尼尔森十大可用性原则”给交互设计师带来益阳的设计思考,但对于新人来说,这并不好理解。为此,本文作者将结合自身经验以及一些案例,与大家聊聊“尼尔森十大可用性原则”到底是什么意思。enjoy~尼尔森(Jakob Nielsen)是一位人机交互学博士,于1995年1月1日发表了「十大可用性原则」。1995年以来,他通过自己的 Alertbox 邮件列表以及useit.com 网站,向成千上万的 Web 设计师传授 Web 易用性方面的知识,尽管他的一些观点可能带来争议,至少在 Web 设计师眼中,他是 Web 易用性领域的顶尖领袖。

    2017-04-27
  • 超出预期的才叫用户体验

    什么是用户体验?我认为,用户体验其实就是一种心理感觉。拿最简单的吃饭这件事来打一个比方。我在饭店,吃饭付账,这个过程叫作体验吗?肯定谈不上。用户体验,肯定是特殊的,肯定是不正常的,肯定是在你的预期之外的。超出预期才形成用户体验如果做跟别人一样的东西,那这些功能并不叫体验。很多人在抄袭别人产品的时候,经常说某某公司做了什么功能,老板说照着做一个,但是你想没想过,如果做得跟别人一样,是没有机会的。当年我们做的是免费杀毒。当时所有其他品牌的杀...

    2018-04-08
  • 2018年交互设计趋势

    想必你还在对昨天HJUX视觉伙伴们给出的视觉设计趋势啧啧称赞,那么赞别停!今天团队的交互伙伴们将带来2018年交互设计趋势。选择在农历新年来临之际奉上这道历时一个月烹制的“交互趋势年夜饭”,只愿给力求打造极致用户体验的你以启发和帮助。干货阅读时间预计5分钟设计是围绕人解决问题,因此对2018年交互趋势的预测,我们将目光聚焦在细腻的情感体验打磨、达成目标的交互介质、解决问题的效率、发生交互行为的场景这几个方面,探究出了以下6大趋势:全感官...

    2018-02-02
  • 产品设计不能闭门造车

     用户调研的重要性不言而喻,没有用户调研的产品设计是闭门造车,不能完美解决用户的痛点,自然也不能创造最大的价值,那么用户调研到底应该怎么做呢? 产品不同阶段的诉求之前的文章中,笔者提到过用户体验5要素,…

    2017-03-28
  • 移动界面动效设计的全方位科普指南

    读了这篇文章,你可以知道动效的作用、设计原则、动效工具、制作方法、标注技巧等等,特别全面,强烈推荐收藏学习。

    2017-05-13
  • 【面试】不吹牛13,我是如何7天拿到百度&网易&创新工厂等6个实习offer的...

      “不卑不吭,保持谦逊”,这是管静总结的与HR和面试官打交道的八字法典。 又是一个40度的夏天,没有喧闹,只有窗外吱吱的蝉鸣。刚过完大三的同学,都开始了寻找实习的路程,有人欢喜有人愁。就读于贵州一所普…

    交互设计 2015-08-17