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设计、UE设计、交互设计分别是什么?

    这些概念在传统行业和传统工业中其实已经发展的很成熟,近几年随着互联网的发展又重新流行起来。UI即User Interface ,字面意思是用户界面,业界一般指的是界面视觉设计UE即User Experience,字面意思是用户体验,这个范围就很广了,不仅仅包含视觉与交互交互设计又称互动设计 ,是人工制品、环境和系统的行为,以及传达这种行为的外形元素的设计与定义。UE范围最大,他研究的对象是用户使用这个产品过程中所有的感受,比如听觉视觉触...

    2018-05-08
  • App界面设计风格 | App界面交互设计规范

    App界面设计风格 APP设计风格是指APP通过主要的几种颜色搭配、页面布局和NPC等给用户呈现出的整体视觉感受。 一个APP开始启动设计时,第一步应该用主要页面定下整个APP的设计风格,然后其他页面按着统一的设计风格…

    交互设计 2015-08-26
  • 2018年用户体验趋势(二)

    2017年,我们见证了很多。在与全世界的189489位设计师策划并分享了1926条链接后,我们从行业内的所写、所说和所想中,预见了几个趋势。以下就是2018年用户体验的预期。#4每个界面都是一个故事设计世界中的讲故事和写作从未如此现实过。随着客户的体验旅程越来越碎片化,我们要确保在不同渠道中讲述连贯的品牌故事,并且这些故事清晰、有趣、富有人性。有段时间,大概是几年前,我们听说过显微术语。但是到了2017年,业内人士发现,不仅要重视在设计...

    2018-03-02
  • 字体的性格【转】

    任何字体都有其独特的风格,有的让人感觉现代、古典;  柔美、刚毅; 迅速、缓慢;  稳重、轻盈… 在设计时,通常为表达某种情感而选择字体。对字体情感的产生是因为对某种字体的内在韵律,而产生的视觉反应。 另外,…

    2014-09-18
  • 用户体验是玄学吗

    XINYI00梁欣怡2018年3月5日用户体验的解释有很多种,我比较倾向的一种是“用户体验是人对于使用一个产品、系统、服务时的预期和反应。”首先明确第一个概念,体验是一个过程,生活中的一切皆是体验,我们赤裸裸的来到这个世界,最后赤裸裸的离开,来人世走一遭就是来体验来了。从广义上来看,体验的主体是人,客体可以是一切物体和事情,媒介是我们的感官;当我们的感官作用在一切事物上,会产生相应的心理行为,比如预期,比如反馈,比如情绪,着所有的一切一...

    2018-03-06
  • 用户体验扩展:一个设计管理者的4步走框架

    用户体验不是一个有规则去衡量的工程,它是科学与艺术的一部分。所有的设计流程最终都会被打破,用户体验扩展的诀窍是创建一个灵活应对设计规模和时间推移直到完成的框架。基于我们的朋友Jason Culbertson(Airbnb设计经理)在Airbnb、GUSTO等公司的产品设计研究中,他在用户体验实践中创建了以下几个方面的框架:.方法&系统-UX领导人和他的团队保证核心标准的工具是什么?如何做一个系统化的设计,而不是碎片化的?.团队结构-随着...

    2018-03-02
  • 交互设计中,如何增加趣味性,提升操作愉悦度?

    功能、实用性,这些需要很强逻辑性的事物很难和情感产生关联,并不是指这些不重要,它们很重要,它们是基础,但缺少了情感的作用,很难产生一些东西,像:快乐、愉悦、悲伤、美... 花、大海、春天、小屋... 这些都…

    交互设计 2015-04-04
  • 用户体验与产品价值

    关注一下,更多精彩等着你户体验不等于用户可用性当你局限地将用户体验等同于用户接触UI时的可用性的时候,或者是局限地理解用户体验只是发生在用户使用产品过程中的时候,你就会说:有比它更重要的事情,比如用户价值、产品价值。是的,没错。如果产品没有用,即对用户没有价值,UI的可用性绝对不是最重要且,但是我们仍然得时刻提醒自己,可用性不等同于用户体验,可用性只是用户体验(使用中)的一部分而已。用户体验设计超越产品设计。用户体验设计包括组织开展用户...

    2018-03-03
  • 一次关于梦想、音乐和代码的交互设计体验

    ▲ Arcade Fire··[Way to Go] 这是树林里的一次漫步, 这是一次惊人的互动体验。 一个不安分的全景, 一次手工制作动画, 用360度视频(精选)拍摄, 混合着音乐、梦想、还有…

    2017-08-02
  • 在一个老外微信PM的眼中,中国App UI那些事

    中美用户习惯的和文化的不同,造成了设计很多的不同。看惯了国内的设计,你了解外国人怎么看待我们的产品吗?接下来就可以带着疑问往下阅读。 本文编译自Dan Grover的博客,他现在是腾讯微信的产品经理。以下是他从…

    交互设计 2014-12-11