iOS:电子书的很多交互式文本

时间:2014-09-10 09:32:41

标签: ios objective-c text

我们正在创建一个应用程序,并且要编写并包含大量文本。我想让文本尽可能具有吸引力,比如添加电影,图片,漂亮的标题等......

我有大约100页A4文本,并且会添加更多文本,因此我必须找到一种好方法来组织它,并使其易于修改。

你会怎么做呢?

我想到了这些方法:

1。将每个章节放在txt文件中并为不同的元素添加标签(例如),然后使用TextKit解析应用程序中的文本以布置元素。

2。为每章制作PDF并显示。

这些似乎都不是很好。我看了iBook作者看起来不错,但我似乎无法找到任何出口的可能性并将材料直接包含在应用程序中?

是否有其他一些软件可以让你构建这本书,然后以一种不错的方式导出它以便你可以在iOS中解析它?

1 个答案:

答案 0 :(得分:2)

我最近遇到了同样的问题,我们决定使用RTF文件。它们是高度可定制的,您允许用户能够复制好的文本。加上文本总是清晰呈现,RTF文件使应用程序变小。使用PDF可以使应用程序变得不必要。

它们也很容易阅读:

NSString *fileName = @"impressum.rtf";
NSURL *url = [[NSBundle mainBundle] URLForResource:[fileName stringByDeletingPathExtension] withExtension:[fileName pathExtension]];

NSError *error;
NSAttributedString *attributedString = [[NSAttributedString alloc] initWithFileURL:url
                                                                               options:@{NSDocumentTypeDocumentAttribute:NSRTFTextDocumentType}
                                                                    documentAttributes:nil
                                                                                 error:&error];

CGRect paragraphRect = [attributedString boundingRectWithSize:CGSizeMake(_textLabel.frame.size.width, CGFLOAT_MAX)
                                                          options:(NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading)
                                                          context:nil];

UpdateFrameHeight(_textLabel, paragraphRect.size.height);
[_textLabel setAttributedText:attributedString];

我们唯一没做的就是将图像直接实现到RTF中。我们在文本文件中插入空格,然后将图像作为子视图添加到文本视图中。