我在iOS上使用https://developers.google.com/android/guides/http-auth在以编程方式设置的UIScrollview中呈现html文件。一旦html文件超过一定长度,文本就不再呈现。它似乎不是一个问题:
存储器。 NSLog显示整个NSAttributedString,无论它有多长。
html文件中的格式错误。我能够将整个文件分片渲染。
如果我为框架放置一个非常大的高度,同样的事情:空屏幕并且没有错误进行故障排除。我怀疑这个问题与计算文件大小有关,也许.. 。字体行大小?难住了。顺便说一句,如果我输入自定义字体,它将被忽略,只显示默认的Helvetica。但是,字体大小可以正确呈现。任何有关获取整个文件的帮助将非常感谢!
我的代码:
m_coreText = [[CoreTextView alloc] initWithFrame:CGRectZero];
m_coreText.backgroundColor = [UIColor clearColor];
m_coreText.contentInset = UIEdgeInsetsMake(10, 10, 10, 10);
NSString* html = [NSString stringWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"terms" ofType:@"html"] encoding:NSUTF8StringEncoding error:NULL];
m_coreText.attributedString = [NSAttributedString attributedStringWithHTML:html renderer:^id<HTMLRenderer>(NSMutableDictionary* attributes) {
CustomRenderer* renderer=[[CustomRenderer alloc] init];
renderer.type=attributes[@"type"];
renderer.size=CGSizeMake(16, 16);
return renderer;
}];
m_coreText.frame = CGRectMake(0, 0, self.view.bounds.size.width, [m_coreText sizeThatFits:CGSizeMake(self.view.bounds.size.width, MAXFLOAT)].height);
UIScrollView* scroll = [[UIScrollView alloc] initWithFrame:self.view.bounds];
scroll.autoresizingMask=UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;
scroll.contentSize=m_coreText.frame.size;
[scroll addSubview:m_coreText];
[self.view addSubview:scroll];