博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WatchKit编程指南:Watch Apps--文本、标签以及图片
阅读量:5757 次
发布时间:2019-06-18

本文共 2026 字,大约阅读时间需要 6 分钟。

文本和分类标签

为了在Watch app中展示文本,使用标签对象。分类标签支持格式化的文本,可以在运行时被程序修改。

要添加标签到界面控制器,可以把它拖到对应的故事版场景(storyboard),在这里指定标签的初始文本字符串和格式。WatchKit既支持标准的字体也可以自定义字体。图8-1展示了你可以使用的标准字体风格。

图8-1标签的标准字体风格

text_styles.png

更多关于配置标签对象的信息,请查阅 。

Using Custom Fonts 使用自定义字体

除了标准字体风格,你可以定制经过格式化的字符串的字体。按照下面的方式来定制字体:

· 在Watch app和WatchKit扩展包中都导入定制的字体文件。

· 添加__UIAppFonts__键到你的Watch app中的Info.plist文件中,并用这个来指定添加到包中的字体。更多关于此键的信息,请查阅

注意:你必须在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 自定义系统字体

自定义系统字体,使用对 象来指定基于系统的新字体。列表 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文件就能支持所有的本地化。本地化字符串分别存在特定的区域语言字符串中。

· 使用族的宏定义来让程序自动检索本地化字符串。

· 通过类使用用户所在区域和本地的设置来格式化数值型的值。

· 通过类使用用户所在区域和本地设置来格式化时间。

当要国际化你的应用,你主要考虑的是如何调整界面,让标签列表(还有其他文本的控制)能够足够容纳得下。比如,比起水平的排列三个按钮,垂直排列更好能给每一个标签的文本提供更长的容纳空间。

转载于:https://www.cnblogs.com/ejllen/p/4191218.html

你可能感兴趣的文章
POJ 2184
查看>>
大话 程序猿 眼里的 接口
查看>>
struts2用了哪几种模式
查看>>
replace函数结合正则表达式实现转化成驼峰与转化成连接字符串的方法
查看>>
ubuntu 初学常用命令
查看>>
WCF客户端与服务端通信简单入门教程
查看>>
判断是否含有中文
查看>>
android 资源种类及使用
查看>>
Explorer程序出错
查看>>
Centos7同时运行多个Tomcat
查看>>
使用CocoaPods过程中的几个问题
查看>>
我的友情链接
查看>>
为eclipse安装maven插件
查看>>
公司新年第一次全员大会小记
查看>>
最懒的程序员
查看>>
JAVA8 Stream 浅析
查看>>
inner join on, left join on, right join on要详细点的介绍
查看>>
SAS vs SSD对比测试MySQL tpch性能
查看>>
Spring boot 整合CXF webservice 全部被拦截的问题
查看>>
Pinpoint跨节点统计失败
查看>>