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

相关推荐

  • 全新的交互体验 | 三星Bixby中文版首发体验视频

    在三星盖乐世 S8 | S8+发布之时,三星还发布了全新语音助手“Bixby”,但中文适配需要时间所以让国内的星粉久等了!为了可以让国内小伙伴快速上手,饼饼特地做了 Bixby中文版体验视频,快速了解 Bixby来这里看就对了!三星Bixby不同于一般的语音助手,在满足一般功能操作的同时还可以进行更深度操作,比如发微博、微信发红包、打开相机自动拍照以及导航等;有关更多Bixby的深度功能,我们期待与大家共同挖掘!点击下方“阅读原文”,了...

    2018-01-30
  • # 干货收藏!一张图教你看懂产品的一生!

    这是Laura Klein创作的一个产品思考图表,你可以在它的指引下一步一步去分析你自己的产品。 思考一下你的产品在每个环节的表现如何,找到较为薄弱的部分,然后想想如何去改善它,接下来就乖乖的回去改线框图吧,把…

    2016-03-15
  • Axure8.0展开收起

    设置菜单展开收起效果,且联动箭头朝上朝下动效。收起状态:箭头朝下,内容收起。展开状态:箭头朝上,内容展开。【步骤】1)设置展开内容与箭头为两个动态面板,命名2)点击事件设在点击菜单栏,同一个事件下控制两个面板状态。内容面板:箭头面板:设置旋转效果。点击菜单栏:点击运行即可。

    2018-03-15
  • 如何制作交互组件库

    曾几何时,每次交互稿都是徒手画,或者截个图在现有的界面上改造。渐渐感到同一平台,每个版本都有很多重复劳动,是时候做个交互组件库了~ 什么是组件库? 就是类似axure左侧栏的这一坨标准控件,方便直接拖拽使用…

    2017-07-24
  • 产品需求分析——《破茧成蝶》读书笔记

    这是一本很实在的书,没有很虚的理论,而是结合了国内互联网实际的案例,清晰明了地道出现实情况跟理想状态的不同,并且给出了很好的解决建议。适合刚入行的交互设计师以及产品经理阅读。 进入研究生阶段,大大小小…

    2015-03-05
  • 输入#号交互,还能变出什么花儿来?

    输入#号后,在键盘之上即刻出现一个半浮层。你可以在当前界面继续打字,或者选择半浮层中的搜索结果。当你想查看更多向上滚动时,才会推入一个新页面。

    2017-05-23
  • 12个线框图示例,来自Dribbble的UX设计师分享。

    在设计过程的最初阶段,我们知道很有可能直接选择word或邮件原始需求。但是,用线框技术解决问题有很多好处,它可以节省时间,更易于发现可用性问题,并让设计人员专注于创造可靠的用户体验

    2017-12-26
  • 【招聘】萧山众多高薪岗位专场来了,就在等你!

    萧山之窗移动生活由此开始....关注还在愁到哪里去上班吗?还在担心工资不够花吗?这里或许有适合你的岗位!2018萧山信息港小镇春季综合型人才招聘大会企业名称招聘岗位微医集团(浙江)有限公司资深Java开发工程师,搜索研发工程师,前端架构师,Java架构师,自然语言算法工程师,医学影像算法工程师,家庭医生,健康管理师,HRBP,客服专员浙江讯飞智能科技有限公司系统测试工程师,资深视觉设计师,视觉设计师,大数据工程师,高级交互设计师,研发架...

    2018-03-21
  • U+敏捷研发体系

    “研发是一项创造性的工作,卓有成效的研发需要优秀的研发团队来完成,优越的研发流程始终能够发现最佳的机遇,推出有竞争力的产品和服务,并以最快的速度把这些研发成果投入市场。”△ △ △ U+敏捷研发体系流程 △ △ △需求分析1研发体系中的第一个环节,这一阶段要求需求分析人员针对待开发软件提供完整、清晰、具体的要求,确定软件必须实现哪些任务。其中包含的敏捷建模,要求需求分析人员对现实问题的抽象想法构画出草图,以规避需求的不合理等问题。原型设...

    2018-03-30
  • “产品设计也需要交互的乐趣”——设计师Avihai作品展示

    一件普通的产品经过设计之后,最终会被送到消费者手中使用,那么便会让人和产品产生一定的互动。 设计师Avihai从这点出发,抓住了人们操作产品时可能产生的乐趣,并以交互的乐趣为创意点,设计了不少好玩的产品。 ·…

    2015-12-02