1

我在 Storyboard 中有非常复杂的 UIViewController。这个 UIViewController 有 UITableView,单元格中有两个滚动视图,另外两个 UIView,五个 UIImageView 和一些 UILabel。用户第一次看到这个控制器的时间约为 5 秒,下一次非常快 0.5 秒。

生命周期控制器中的 viewWillApper 和 viewDidApper 之间存在滞后。

如何优化此视图 UIViewController?

4

1 回答 1

1

好的,我发现了我的问题:

DTHTMLAttributedStringBuilder *stringBuilder = [[DTHTMLAttributedStringBuilder alloc] initWithHTML:data
                                                                                           options:builderOptions
                                                                                documentAttributes:nil];

NSAttributedString *attrString = [stringBuilder generatedAttributedString];

generatedAttributedString 生成滞后。我通过 Time Profiler 发现了这个问题(感谢 Fogmeister)。

所以我通过在初始化视图控制器之前生成虚假内容来消除这个问题:

    NSString *html = @"<html>fake content</html>";
NSData *data = [html dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *builderOptions = @{
                                 DTDefaultFontFamily: @"Helvetica",
                                 DTDefaultFontSize: @14
                                 };
DTHTMLAttributedStringBuilder *stringBuilder = [[DTHTMLAttributedStringBuilder alloc] initWithHTML:data
                                                                                           options:builderOptions
                                                                                documentAttributes:nil];



NSAttributedString *attrString = [stringBuilder generatedAttributedString];
Zlog(@"attrString %@", attrString);
于 2013-07-18T09:53:23.907 回答