我在 Storyboard 中有非常复杂的 UIViewController。这个 UIViewController 有 UITableView,单元格中有两个滚动视图,另外两个 UIView,五个 UIImageView 和一些 UILabel。用户第一次看到这个控制器的时间约为 5 秒,下一次非常快 0.5 秒。
生命周期控制器中的 viewWillApper 和 viewDidApper 之间存在滞后。
如何优化此视图 UIViewController?
我在 Storyboard 中有非常复杂的 UIViewController。这个 UIViewController 有 UITableView,单元格中有两个滚动视图,另外两个 UIView,五个 UIImageView 和一些 UILabel。用户第一次看到这个控制器的时间约为 5 秒,下一次非常快 0.5 秒。
生命周期控制器中的 viewWillApper 和 viewDidApper 之间存在滞后。
如何优化此视图 UIViewController?
好的,我发现了我的问题:
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);