WatchKit编程指南:Watch Apps--文本、标签以及图片
文本和分类标签
为了在Watch app中展示文本,使用标签对象。分类标签支持格式化的文本,可以在运行时被程序修改。
要添加标签到界面控制器,可以把它拖到对应的故事版场景(storyboard),在这里指定标签的初始文本字符串和格式。WatchKit既支持标准的字体也可以自定义字体。图8-1展示了你可以使用的标准字体风格。
图8-1标签的标准字体风格

更多关于配置标签对象的信息,请查阅 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的标签了。
使用自定义的字体作为标签的字符串
|
1
2
3
4
5
6
7
8
|
// 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中定义)然后字体描述符的结果来创建新的字体对象。
指定系统字体为小写
|
1
2
3
4
5
6
7
8
9
10
|
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类使用用户所在区域和本地设置来格式化时间。
当要国际化你的应用,你主要考虑的是如何调整界面,让标签列表(还有其他文本的控制)能够足够容纳得下。比如,比起水平的排列三个按钮,垂直排列更好能给每一个标签的文本提供更长的容纳空间。
WatchKit编程指南:Watch Apps--文本、标签以及图片的更多相关文章
- 高级Bash脚本编程指南(27):文本处理命令(三)
高级Bash脚本编程指南(27):文本处理命令(三) 成于坚持,败于止步 处理文本和文本文件的命令 tr 字符转换过滤器. 必须使用引用或中括号, 这样做才是合理的. 引用可以阻止shell重新解释出 ...
- WatchKit编程指南:概览--Watch应用的体系结构
Apple Watch应用程序包含两个部分:Watch应用和WatchKit应用扩展.Watch应用驻留在用户的Apple Watch中,只含有故事板和资源文件,要注意它并不包含任何代码.而Watch ...
- (转载)JDOM/XPATH编程指南
JDOM/XPATH编程指南 本文分别介绍了 JDOM 和 XPATH,以及结合两者进行 XML 编程带来的好处. 前言 XML是一种优秀的数据打包和数据交换的形式,在当今XML大行于天下,如果没有听 ...
- Apache Spark 2.2.0 中文文档 - Spark Streaming 编程指南 | ApacheCN
Spark Streaming 编程指南 概述 一个入门示例 基础概念 依赖 初始化 StreamingContext Discretized Streams (DStreams)(离散化流) Inp ...
- 《JavaScript面向对象编程指南》读书笔记②
概述 <JavaScript面向对象编程指南>读书笔记① 这里只记录一下我看JavaScript面向对象编程指南记录下的一些东西.那些简单的知识我没有记录,我只记录几个容易遗漏的或者精彩的 ...
- [转]ODBC编程指南
DM4 ODBC编程指南本章结合DM4数据库的特点,比较全面系统的介绍ODBC的基本概念以及DM4 ODBC DRIVER的使用方法,以便用户更好地使用DM4 ODBC编写应用程序.ODBC提供给你访 ...
- SparkStreaming 编程指南
摘要:学习SparkStreaming从官网的编程指南开始,由于Python编码修改方便不用打包,这里只整理python代码! 一.概述 Spark Streaming 是 Spark Core AP ...
- Apache Spark 2.2.0 中文文档 - Spark Streaming 编程指南
Spark Streaming 编程指南 概述 一个入门示例 基础概念 依赖 初始化 StreamingContext Discretized Streams (DStreams)(离散化流) Inp ...
- Core Animation编程指南
本文是<Core Animation Programming Guide>2013-01-28更新版本的译文.本文略去了原文中关于OS X平台上Core Animation相关内容.因为原 ...
随机推荐
- Nginx集群之WCF分布式身份验证(支持Soap)
目录 1 大概思路... 1 2 Nginx集群之WCF分布式身份验证... 1 3 BasicHttpBinding.ws2007HttpBinding. 2 4 ...
- vue2.0 关于Vue实例的生命周期
什么是生命周期 Vue实例有一个完整的生命周期,也就是从开始创建.初始化数据.编译模板.挂载Dom.渲染→更新→渲染.卸载等一系列过程,我们称这是Vue的生命周期.通俗说就是Vue实例从创建到销毁的过 ...
- 音频PCM编码
PCM编码 PCM就是把一个时间连续,取值连续的模拟信号变换成时间离散,取值离散的数字信号后在信道中传输.简而言之PCM就是对模拟信号先抽样,再对样值幅度量化,编码的过程.例如听到的声音就是模拟信号, ...
- Scala的安装,入门,学习,基础
1:Scala的官方网址:http://www.scala-lang.org/ 推荐学习教程:http://www.runoob.com/scala/scala-tutorial.html Scala ...
- HashTable源码阅读
环境jdk1.8.0_121 与HashMap有几点区别 在HashMap中,冲突的值会在bucket形成链表,当达到8个,会形成红黑树,而在HashTable中,冲突的值就以链表的形式存储 publ ...
- Mybatis之基于XML的增删改查
这里先吐槽下,写的半天的东西,IE浏览器弹出调试窗口导致写的东西全部没保存,搞得我还要重新用谷歌写,思路全没了,fuck. 前面学习了下spring的DAO层,说起DAO层,那ORM肯定是少不了的,O ...
- Python scikit-learn机器学习工具包学习笔记
feature_selection模块 Univariate feature selection:单变量的特征选择 单变量特征选择的原理是分别单独的计算每个变量的某个统计指标,根据该指标来判断哪些指标 ...
- CTF---Web入门第十三题 拐弯抹角
拐弯抹角分值:10 来源: cwk32 难度:易 参与人数:5765人 Get Flag:2089人 答题人数:2143人 解题通过率:97% 如何欺骗服务器,才能拿到Flag? 格式:CTF{} 解 ...
- “玲珑杯”ACM比赛 Round #13 题解&源码
A 题目链接:http://www.ifrog.cc/acm/problem/1111 分析:容易发现本题就是排序不等式, 将A数组与B数组分别排序之后, 答案即N∑i=1Ai×Bi 此题有坑,反正据 ...
- HDU 1728 逃离迷宫(DFS经典题,比赛手残写废题)
逃离迷宫 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...