我正在为我的应用程序编写应用程序内指南,我想在其中布局一些支持动态类型的标题和文本段落。
使用单个 UITextView 最简单的方法是什么?(文本最好从单独的文本文件中加载)。
有很多方法可以解决这个问题:
- UIWebViews(过度杀戮??)
- UITextView 和 NSAttributedString?
- Text Kit - 对于这个简单的任务来说似乎很麻烦?
我正在为我的应用程序编写应用程序内指南,我想在其中布局一些支持动态类型的标题和文本段落。
使用单个 UITextView 最简单的方法是什么?(文本最好从单独的文本文件中加载)。
有很多方法可以解决这个问题:
UIWebView 是迄今为止解决这个问题的最简单的方法。您可以在项目中将 html 文件创建为单独的文件,并在运行时从包中加载它。
NSString *path = [[NSBundle mainBundle] pathForResource:@"info" ofType:@"html"];
NSString *file = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:NULL];
NSURL *baseURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]];
[self.webView loadHTMLString:file baseURL:baseURL];
使用 baseURL 技巧将允许您甚至在 html 中使用并让它在您的应用程序包中找到图像。
使用 aUITextView
应该可以满足您的需求。从您的文件中读取文本并根据用户确定的类别大小设置字体。从 iOS7 开始,您可以使用 加载一个简单的 HTML 文件作为属性字符串initWithFileURL:options:documentAttributes:error:
,因此您可以在文件中设置简单的样式和文本。使用font:-apple-system-headline;
,font:-apple-system-subheadline;
和font:-apple-system-body;
作为 HTML 中的字体,以便在读取 HTML 文件时在属性字符串中获得正确的字体。
您可以收听UIContentSizeCategoryDidChangeNotification
通知以了解用户何时更改了他的首选类别并相应地设置您的字体或重新加载您的数据。