Iphone CATTransition和特定执行时间
查看以下示例代码(在AppDelegate中): } 此方法只需将view1切换到view2。我不明白的是,在将view2分配给self.viewController.view之后,cattransition被声明并添加到window.layer。为什么动画可以工作Iphone CATTransition和特定执行时间,iphone,ios,objective-c,quartz-core,catransition,Iphone,Ios,Objective C,Quartz Core,Catransition,查看以下示例代码(在AppDelegate中): } 此方法只需将view1切换到view2。我不明白的是,在将view2分配给self.viewController.view之后,cattransition被声明并添加到window.layer。为什么动画可以工作 我确实设置了断点,并发现在showOtherView方法完成后切换动画。为什么?为什么view2不会立即出现在屏幕上!?(至少这是我第一次调用此方法)绘制屏幕是一项昂贵的操作,而且,最终。设置控制器视图的效果——它被放在屏幕上——直
我确实设置了断点,并发现在showOtherView方法完成后切换动画。为什么?为什么view2不会立即出现在屏幕上!?(至少这是我第一次调用此方法)绘制屏幕是一项昂贵的操作,而且,最终。设置控制器视图的效果——它被放在屏幕上——直到此方法返回并且控制传递到运行循环之后才真正发生。因此,您对新视图所做的任何配置都将始终显示出来
- (void)showOtherView {
if (self.viewController.view == view1) {
self.viewController.view = view2;
} else {
self.viewController.view = view1;
}
CATransition *animation = [CATransition animation];
[animation setType:kCATransitionMoveIn];
[animation setSubtype:kCATransitionFromRight];
[animation setDuration:0.5];
[animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
[[self.window layer] addAnimation:animation forKey:@"myKey"];