与“https://stackoverflow.com/q/10468333/79202”>前一个问题 相同的代码,但有一个不同的问题。
我创建了一个自定义动画, 以添加一个查看控制器到 UINAVIGATION 控制器。 此代码将视图缩放为原始大小的 80%, 然后翻转它, 然后将它缩放到原来的大小 :
[UIView animateWithDuration:scaleDuration delay:0 options:UIViewAnimationOptionCurveEaseIn animations:^{
// Scale the controllers views down.
self.view.transform = CGAffineTransformScale(self.view.transform, 0.8, 0.8);
} completion:^(BOOL finished) {
// Transition to the new view and push on the new view controller.
[UIView transitionWithView:self.view duration:1 options:UIViewAnimationOptionCurveLinear | UIViewAnimationOptionTransitionFlipFromLeft animations:^{
[self pushViewController:viewController animated:NO];
} completion:^(BOOL finished) {
[UIView animateWithDuration:scaleDuration delay:0 options:UIViewAnimationOptionCurveLinear animations:
^{
// Scale back to the original size.
self.view.transform = CGAffineTransformScale(self.view.transform, 1.25, 1.25);
} completion:nil];
}];
}];
问题是, 当动画完成时, 新的视图会显示得非常漂亮, 只是在任务栏下绘制。 也就是说, 它会从屏幕源 0, 0, 而不是 0, 20。 “ 状态栏” 选项设置在 IB 中( 设置为“ 黑色 ” ), 当然, 如果我使用标准的 UINAvigation Condenter 驱动动画, 只有我定制的动画, 这不会发生 。 如果我在动画后旋转设备, 旋转时的重划将它移动到合适的位置 。 但是, 我如何首先做到这一点?
作为添加的皱纹, 如果我移动 < code> pushViewCovernor: animerated: 调出一条线到 < code> 补全块 : 块, 它不会在任务栏下提取( 不过, 这样一来, 视图会自动翻转, 然后突然显示新视图, 当然 ) 。