在调用UIView animateWithDuration之后,关键帧动画需要很长时间才能启动

时间:2015-03-12 09:09:51

标签: ios objective-c uiview uikit caanimation

我使用以下方法链接动画:

[UIView animateWithDuration:0.3 delay:0
                    options:UIViewAnimationOptionCurveEaseOut
                 animations:^(){
                     // Animations here
                 }
                 completion:^(BOOL finished) {
                     if (finished) {
                         // Chained animation
                     }
                 }];

每当我出现并关闭视图控制器时,这些动画都会播放,称之为View Controller 1.

当我加载第二个视图控制器View Controller 2时,我在mainWindow顶部显示一个插页式加载视图,其中mainWindow是

UIWindow *mainWindow = [[[UIApplication sharedApplication] delegate] window];

此插页式加载视图显示使用关键帧动画设置动画的微调器。

我遇到的问题是,如果我多次加载View Controller 1(比如说5次以上),然后加载View Controller 2,则微调器动画开始需要很长时间才能启动。多次进入View Controller 1后,进入View Controller 2后,View Controller 2的动画需要很长时间才能开始在旋转器有机会开始制作动画之前移除加载视图。

有谁知道可能导致此行为的原因是什么?当我离开View Controller 1时,它与UIView动画没有被正确删除有什么关系吗?

1 个答案:

答案 0 :(得分:0)

调用main_queue中的方法,这解决了我的问题。

@Override
protected Bitmap doInBackground(Bitmap... params) {
   try {
      InputStream is = new URL(url).openStream();
      BufferedInputStream bis = new BufferedInputStream(is);
      Metadata metadata = ImageMetadataReader.readMetadata(bis);
   } catch (Exception e) {
      //..
   }
   return null;
}