Demo4—电子书
1.创建一个txt文本文件,找一张背景图片,并放入工程中
2.搭建界面
- 将电子书内容框入一个label中
@property(nonatomic, strong) UILabel *bookLabel;
- 设置边框属性
//初始化label的大小、位置
self.bookLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 50, self.view.frame.size.width - 20, self.view.frame.size.height - 100)];
//设置边框颜色
_bookLabel.layer.borderColor = [UIColor blackColor].CGColor;
//设置边框线的像素
_bookLabel.layer.borderWidth = 2;
//设置字体 和下面进行计算的字体要一致
_bookLabel.font = [UIFont systemFontOfSize:20];
//设置显示行数
_bookLabel.numberOfLines = 0;
//设置label的背景图片
_bookLabel.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"电子书背景.jpg"]];
3.读取文件内容
- 定义一个字符串属性变量用来存储电子书的内容
@property(nonatomic, strong) NSString *text;
- 开始读取文件
- (void)loadData{
//1.获取文件路径
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"电子书.txt" ofType:nil];
//2.读取文件内容
NSError *error = nil;
self.text = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:&error];
//3.判断读取是否正确
if (error != nil) {
exit(EXIT_SUCCESS);
}
}
4.计算每一页的内容显示范围,用range表示,并把算出的范围存入一个可变数组
@property(nonatomic, strong) NSMutableArray *pageRangesArray;
//初始化pageRangesArray
self.pageRangesArray = [NSMutableArray array];
NSRange range;//location length
for (int i = 0; i < _text.length; i++) {
//range.length加一
range.length++;
//获取range对应的子字符串
NSString *subStr = [_text substringW