我正在使用 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();
}
}
];
}
什么可能导致表格视图增长而不是允许包装器翻转?
编辑:
我制作了一个视频来演示确切的问题。