我试图编写一个iPhone应用程序,启动时会出现启动图像,然后需要2.5秒才能模糊。一旦模糊效果完成,那就是我希望UI的其余部分出现。
我打算使用以下代码来模糊图像:
[UIView transitionWithView:self.view duration:2.5 options:UIViewAnimationOptionTransitionCrossDissolve animations:^{
self.backgroundImage.image = [UIImage imageNamed:@"640 x 960 Blur10_iOS7@2x.png"];
} completion:^(BOOL finished) {
}];
BackgoundImage使用图像的常规视图进行初始化,转换到图像的blur10视图需要2.5秒。但是,当我从didViewLoad方法运行此代码时,应用程序将打开,其中包含已经模糊的图像视图,并且不显示动画。如果我按下按钮运行代码,它就能完美运行。
答案 0 :(得分:0)
你应该把它放进去:
- (void) viewDidAppear:(BOOL)animated {
// put stuff here
}
这样,在视图可见之前它不会运行。
或者,您可以在viewWillAppear
中准备并开始淡入viewDidAppear
。
- (void) viewWillAppear:(BOOL)animated {
// view is about to appear, set up your blur
}
- (void) viewDidAppear:(BOOL)animated {
// view has appeared, start your blur.
}
答案 1 :(得分:0)
模糊图像是一项昂贵的操作。制作随着时间的推移而模糊的动画甚至更昂贵,并且可能不会像您期望的那样运行。
您最好使用不同的模糊量创建大量不同的图像,然后使用UIImageView
和animationImages
在startAnimating
中设置动画。