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

相关推荐

  • 交互式网站UI设计指南

      Web开发社区有着大量的交互式设计轻松解决方案。虽然现在大多数网站都能够做到交互性了,但是我们需要不断向前、创新。我们很容易将注意力集中到编码方面,但是有时候不同屏幕尺寸的实际设计考虑却往往被忽视。 …

    2014-12-23
  • 国际用户体验设计论坛邀请函

    点击上方蓝字关注我们国际用户体验设计论坛暨中国工业设计协会用户体验产业分会第一届理事会预备会!  开始报名啦  !官方海报如下👇报名方式一👇长按识别下方二维码,通过报名页面报名👇报名方式二点击文章最底部“阅读原文”,通过H5报名页面完成报名了解我们关注我们长按下图二维码关注“UXE优艺智造”这里有最新的行业动向最前沿的学术研究来一探用户体验的商业价值吧联系我们电话15868193198邮箱uxestudy@126.com欢迎投稿

    2018-03-30
  • 【译文】UI设计中七个不能违反的法则

      作者:Peter Vukovic(译者:RAS)   虽然当下的网页的功能无非是引导或者填表,但是随着新技术和新标准的发展,网页设计中出现了越来越多对动态化和定制化的要求。UI设计的工作量随之会越来越大,让我们来看看设…

    交互专题 2017-08-07
  • 关于工作效率的心得分享?(拖延症患者必看!)

    来源:Tencent CDC 作者:milaky 这是去年11月底在小组里分享过的工作效率心得,在这里也跟大家分享一下工作“快”感哈哈。我相信大家应该都有过工作效率的些许烦恼。而这个效率啊伴随我很长时间的痛苦。每每到PDI的…

    2014-09-21
  • AxureUX信息化精美简历模板完整版正式发布

    01作品信息作品名称:AxureUX信息化精美简历模板完整版作品类型:模板类发布日期:2018-03-12最新版本:v1.0主要适用:其它软件版本:Axure 8.0文件大小:5.6MB作品编号:OTH002作品售价:¥69.00详细介绍及演示:http://www.axureux.com/home/ResumeTemplatePro.html复制以上链接在浏览器打开或点击文章底部阅读原文,建议在电脑上查看原型演示。02作品介绍本作品是...

    2018-03-12
  • 鱼和熊掌——关于产品更注重功能还是更关注体验?

    “你从来不会因为产品功能而赢得用户,但他们会因体验慕名而来——关于快速使用最小可行化产品MVP(注:国内通称为‘试错’)快速进入市场指南”——by Lee Dale 基于这样一个背景,你需要重新考虑你的产品设计——摒弃罗列功…

    2015-07-18
  • 在交互设计中,需要注意的四个小tips

    在移动互联网时代发展的今天,场景思维对于用户体验设计的影响不言而喻。大道理在此不多说,大家都懂。在这里,笔者和大家分享一个近期手上的设计task中总结出来的几个交互设计的小tips。

    2017-05-18
  • 阅读类产品中的交互设计逻辑分析

    ↑  点击上方蓝字,加个关注吧~ ↑话题:阅读类产品的交互设计该怎么做?本文共1285字25图,预计阅读时间: 4分钟阅读体验阅读类的产品交互核心所有阅读类产品围绕的产品核心是:阅读体验好的阅读体验会让用户感到熟悉性,由于用户习惯长久的累积,对于阅读产品的使用逻辑,在用户脑海中已经有了一个基础的操作定位。在阅读体验中,不同习惯的交互动作设计所带来体验也不同,通过分析阅读产品中的交互方式,来解剖其交互中设计逻辑。阅读方式我们参考了三款阅读...

    2018-02-27
  • 为什么蓝色会成为UI设计中最常用的色彩?

    蓝色依然是一种安全的色彩,当你的产品或者网站契合蓝色的气质的时候,不妨选择它,但是始终记住一点:选择适合自己的产品的色彩,才是正确的选择。

    2017-06-08
  • 交互设计面试经验分享

    交互设计面试经验分享 2016年7月12日 星期二 下午2:49 今天去面试,问的问题给大家看下,刚出来面试场所,就记得这些了。 1.你有没有做过一个你认为特别复杂的项目,包括后台结构,它复杂在哪? 2.如果需求一直变更…

    交互设计 2016-07-14