我在viewController.view中添加了大约500个视图。 此操作在目标上花了大约5秒钟。 现在我希望在我添加的每个子视图后刷新屏幕,这样用户就会看到它们在屏幕上逐一显示。
我在viewController中试过这个:
-(void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
for(int i=0; i<500; i++)
{
//...Create aView
[self.view addsubview:aView];
[self.view setNeedsDisplay];
}
}
我运行它并且没有任何事情发生5秒然后所有视图立即出现。 我确保从主线程上下文调用[self.view setNeedsDisplay]。
知道如何逐个显示这些子视图吗?
答案 0 :(得分:0)
我找到了一个简单的解决方案。我在viewController中添加了一个新属性 - 'subviewsCount'女巫被初始化为500.然后从viewDidLoad调用以下方法:
-(void) addSubviewsToMotherView
{
self.subviewsCount -=1;
if (self.subviewsCount >= 0)
{
[UIView animateWithDuration:0.0
delay:0.0
options:UIViewAnimationOptionLayoutSubviews
animations:^{
[self methodToAddSubview];
}
completion:^(BOOL finished){
[self addSubviewsToMotherView];
}
];
}
}