[英]Adding a `UIView` as a subview is initially slow
在名为MainViewController
UIViewController
,我引用了另一个名为SubViewController
UIViewController
。 定义如下:
@class SubViewController;
@interface MainViewController : UIViewController <UIScrollViewDelegate> {
SubViewController * _subViewController;
}
在MainViewController
的initWithNibName:bundle:
方法中,我按以下方式初始化SubViewController
:
#pragma mark - Init
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil; {
if((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])){
_subViewController = [[SubViewController alloc] initWithNibName:@"SubViewController" bundle:nil[;
// Forces the view to load, in an attempt to speed up the adding of the subview.
UIView * view = _subViewController.view;
view.alpha = 1.0f;
}
return self;
}
SubViewController
的viewDidLoad
方法确实被调用,并且似乎所有内容SubViewController
加载,但是当我将SubViewController
添加为子视图时:
- (IBAction)showButtonPressed:(UIButton *)aButton; {
[self.view addSubview:_subViewController.view];
}
该应用程序减慢了几秒钟的时间,然后添加了子视图,一切都很好。 奇怪的是,当我删除子视图并尝试重新添加它时, 没有延迟 !
我认为这个问题正在解决,但我找不到有关如何解决此问题的任何文档。
谁能解释造成这种速度下降的原因是什么? 谢谢!
您的代码不完整!
我尝试使用您的代码并创建新项目-ARC-,而它对我而言却丝毫不拖延,尝试使用Instruments查找发生的事情
我从来没有那样的问题。 因为您说的是如果不加载第二个视图,则它的运行速度更快。 检查以查看secondViewController的viewWillAppear和viewDidAppear中的内容
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.