suj*_*jay 1 iphone core-animation objective-c page-curl
我正在处理页面卷曲效果.点击一个按钮,我能够通过页面(即在UIViews之间).以下代码描述了相同的
UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1.5];
if ([sender tag] == 1) {
[UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:placeholder cache:YES];
}
else {
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:placeholder cache:YES];
}
if (view1OnTop) {
[view1 removeFromSuperview];
[placeholder addSubview:view2];
}
else {
[view2 removeFromSuperview];
[placeholder addSubview:view1];
}
[UIView commitAnimations];
view1OnTop = !view1OnTop;
Run Code Online (Sandbox Code Playgroud)
有了这个,我能够在UIViews之间卷曲,但我的问题是,我能否在两个或更多类之间应用这种过渡?提前致谢
并非一切都是可动画的.只有UIKit的部分是.所以,如果你的意思是询问是否NSObject可以动画任何子类,那么他们就不能.如果你的意思是询问是否UIView可以动画子类,那么答案是肯定的.它们也可以是不同的子类.虽然这是可能的,但这并不意味着它会给我们正确的结果.他们可能最终看起来很奇怪.你可能不想那样做.
图层也是可动画的.
但这完全取决于你的课程意味着什么.
动画到新的视图控制器
假设您想要改变在视图控制器之间切换的方式,可以使用transitionWithView:duration:..类方法UIView.一个例子,
SecondViewController * viewController = [[[SecondViewController alloc] initWithNibName:nil bundle:nil] autorelease];
[UIView transitionWithView:self.view.window
duration:1.0f
options:UIViewAnimationOptionTransitionCurlUp
animations:^{
[self.navigationController pushViewController:viewController animated:NO];
}
completion:NULL];
Run Code Online (Sandbox Code Playgroud)
这将在按下新视图控制器时使用卷曲过渡.
适用于4.0以上的iOS版本
由于它们不支持基于块的动画API,因此您必须这样做,
[UIView beginAnimations:@"Curl up" context:NULL];
[UIView setAnimationDuration:1.0f];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view.window cache:YES];
[self.navigationController pushViewController:viewController animated:NO];
[UIView commitAnimations];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2938 次 |
| 最近记录: |