1

我正在使用 iCarousel 库来显示一个类似于 Coverflow 的 UI。直接对 iCarousel 子视图进行动画处理往往会爆炸,因此我为我的动画创建了一个包装器,并在其中粘贴了一个子视图,看起来像被轻拍的封面。然后我隐藏了实际的 iCarousel 视图,并在其顶部设置了动画封面。

我正在使用UIView'stransitionWithView:duration:options:animations:completion:方法,但遇到了一些麻烦。第一次在屏幕上为另一个视图设置动画时,该视图显示时没有任何动画。动画出来时,视图正确翻转和隐藏。

我的视图层次结构如下:

  • 主视图,从笔尖加载
  • 包装视图
    • 视图从
    • 视图过渡到

我要过渡到的视图是 UINavigationController 的视图,其中包含 UITableViewController 子类。UINavigationController 不是最初的动画,而是出现,然后视图向上增长一点,就好像它正在接管状态栏所占据的空间。

知道为什么表格视图可能会像这样动画吗?(我怀疑包含 API 和/或wantsFullscreen,尽管我没有明确使用它们。我只是通过 将视图安装到包装器中addSubview:。)

这是我的“翻转”代码,每次都动画,但第一个:

- (void) flipInWithCompletion:(MBTransitionCompletion)completion {
BOOL displayingPrimary = [self isDisplayingPrimaryView];

UIView *frontView = [self frontView];
UIView *backView = [self backView];
UIView *wrapperView = [self wrapperView];

[wrapperView addSubview:frontView];

[UIView transitionWithView:wrapperView
                  duration:0.8
                   options:UIViewAnimationOptionTransitionFlipFromRight
                animations:^{
                    [wrapperView addSubview:backView];
                    [frontView removeFromSuperview];
                }
                completion:^(BOOL finished) {
                    [self setIsDisplayingPrimaryView:!displayingPrimary];
                    if (completion) {
                        completion();
                    }
                }
 ];

}

什么可能导致表格视图增长而不是允许包装器翻转?

编辑:

我制作了一个视频来演示确切的问题。

4

1 回答 1

1

听起来视图在开始动画之前没有正确加载。我想我记得以前遇到过类似的问题。尝试先将其添加到您的视图中,然后将其删除,并尝试将其设置为动画以查看是否可以修复它。

虽然这并不是一个真正的解决方案,但它应该为您提供可能出现问题的线索。

于 2013-01-06T15:41:50.947 回答