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

相关推荐

  • 4月最新便民信息!政府、企业、医院、社工...你想要的岗位都在这里!

    各类招聘求职生活信息关注后回复发布查看更多4月啦,又是新的开始没有工作的同学快快看有哪些好工作吧...   ...招聘信息类首先,是我们玩转郫县的招聘啦邀请你一起来和我们玩营销经理▲薪资待遇:社保+底薪+全勤+提成+奖金(4000-10000元)▲职责要求:1.开拓郫都地区美食、休闲、旅游市场2.建立并维护平台与合作商家良好关系3.能熟练运用word、Excel办公软件▲任职资格:1.工作主动、责任心强、具有良好的团队合作精神、抗压能力...

    2018-04-08
  • Sketch49交互原型新功能测评教程!

    昨天,Sketch49新版本发布,小编朋友圈又被刷了一波屏。对于该全新版本,具体有哪些新功能,以及如何使用呢?「10000个知识点」特邀讲师UIBANG-乔帮主连夜做了sketch新功能测评教程,分享给大家,希望可以给予你们帮助。深夜给大家整理了Sketch49版本更新的新功能-交互原型,希望大家能有所收获。下午在圈内微信群里,忽然看到2月28日发布了Sketch49新版本的...

    2018-03-03
  • 不看枉为互联网人互联网大会PPT精彩集锦

    当APEC峰会灿烂落幕,“双十一”血拼结束,下一个举世瞩目的焦点在哪里?浙江乌镇——首届世界互联网大会19日在这里启幕。 今天小编整理了互联网大会的精品PPT分享给大家,内容涉及与移动医疗最密切相关的三个互联网行…

    2014-11-21
  • 实用干货!如何让设计效果高还原度落地?

    一个产品完整的设计流程中,交互与视觉定稿后,后续视觉规范的输出、UI控件的整理与标注、开发的高还原度,都会影响产品最终的用户体验。作为视觉设计 师,在视觉设计 的最后阶段则是繁琐且像素级别的精雕细琢,设计讲究的不仅是美感还有严谨态度与逻辑。

    2017-05-24
  • 用户体验再度升级,共享租车现里程碑式进步

    近日,国内共享租车领导品牌凹凸租车发布最新APP 4.0版本,该版本通过优化匹配算法和系统功能,在业内首度实现共享租车平台零拒单,免除了用户交易后租不到车的后顾之忧。同时,新版凹凸租车上线了“精选优车”频道,全面提升用户的租车体验。零拒单,用户所租即所得在共享租车行业,用户租车后遭遇车主临时拒单或取消的现象成为一大痛点。在凹凸租车4.0新版本中,平台通过车源端优化、车辆接单标准化、智能推荐匹配算法和系统功能升级,实现了工作时段的无拒单、...

    2018-02-01
  • 优秀的UI/UX设计师需要具备哪些技能?

    互联网时代,企业对设计的要求越来越高,也越来越多样,那么成为一名优秀的设计师应该具备哪些技能呢?

    2017-05-12
  • 如何创建用户体验地图

    许多公司尽管怀中最美好的愿景、掌握庞大的数据,却依然只能给他们的用户提供乏善可陈、平淡无奇的产品体验。这归咎于他们以聚焦内部、脱离用户的方式做产品,缺乏对用户的关注。他们未意识到用户对其产品的每一次体验都会影响用户的体验满意度、品牌忠诚度和忍耐底线。如果使用用户体验地图(Customer Journey Map),则能够很好地描绘出用户在体验产品时的情绪 变化,并以此对产品进行优化。通过体验地图的项目,我们发现了很多产品的优化方向。下面...

    2018-02-01
  • 如何设计完美的移动端表单【UXRen译#169】

    作者:Levi Kovacs   |  翻译:楠木,校审:小蟹   不是所有人都喜欢填写表单。它不是什么有趣的事情,但它是我们必须做的事,完成一件事情的方法,可以说是一个工具。所以,让我们不再关注如何让它有趣,而是如何…

    交互专题 2017-08-07
  • 交互设计攻略之“竞品分析”上

    前言:无论一个产品是从0到1,还是从1到2,我们需要对自身产品有一个清晰的认知与定位,最快的方式就是竞品调研。知己知彼,取长补短。(这里针对自家产品做的一个竞品调研分享,请勿商用。)首先,我们要确定竞品调研的目的是什么?很简单:为了选取同类型产品功能,可供学习与借鉴的地方,从而对本产品平台进行迭代优化。运用金字塔原理自上而下的方法解决“竞品分析的目的”是找出【同类竞品学习与借鉴】,那么引申的问题如下:一、同类型产品有哪些?想知道同类型产...

    2018-03-16
  • 【读书笔记】方寸指间——实战指导手册

    导航设计 标签式:能让用户直观地了解到App的核心功能。根据逻辑和重要性控制在5个以内,通过视觉表现用户的当前位置,页面之间的切换快速又不容易迷失,简单高效。 桌面式:类似于手机桌面各个应用入口的导航方式…

    2015-07-17