发现项目中A页面push到B页面的时候会卡顿一下,后来发现是因为B页面里创建UI太多,而且都用了mas框架约束布局,会比使用Frame更慢些,经查发现pushViewController动画会在B页面viewDidLoad方法执行完毕后才开始执行,所以把一部分UI创建放到下次runloop里
- (void)viewDidLoad {
[super viewDidLoad];
self.view.backgroundColor = UIColor.whiteColor;
[self createUI]; // 先创建一部分进入页面马上需要展示的UI
dispatch_async(dispatch_get_main_queue(), ^{
// 在下次runloop时再创建剩下的UI
[self createNextLoopUI];
});
}
网友评论