页面卷曲效果将在iphone中的类之间转换

问题描述

| 我正在使用页面卷曲效果。单击按钮即可转移页面(即在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;
我可以在UIViews之间进行卷曲,但是我的问题是,我可以在两个或多个类之间应用这种过渡吗?  提前致谢     

解决方法

        并非所有事物都是可动画的。 UIKit只有一部分是。因此,如果您要询问是否可以对
NSObject
的任何子类进行动画处理,那么否,则不能。如果您想问是否可以激活
UIView
的子类,那么答案将是。它们也可以是不同的子类。尽管这是可能的,但这并不意味着它将为我们提供正确的结果。他们可能最终看起来很奇怪。您可能不想这样做。 图层也可以设置动画。 但是,这一切都取决于您对类的含义。 动画化到新的视图控制器 假设您想更改视图控制器之间的切换方式,可以使用
UIView
transitionWithView:duration:..
类方法。一个例子,
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];
推送新的视图控制器时,它将使用向上卷曲过渡。 对于低于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];