【问题标题】:page curl effect to transit between classes in iphone页面卷曲效果在iphone中的类之间转换
【发布时间】:2011-06-23 11:29:25
【问题描述】:

我正在使用页面卷曲效果。单击按钮时,我能够传输页面(即在 UIView 之间)。以下代码描述了相同的

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 之间卷曲,但我的问题是,我能在两个或多个类之间应用这种过渡吗? 提前致谢

【问题讨论】:

    标签: iphone objective-c core-animation page-curl


    【解决方案1】:

    并非所有内容都是可动画的。只有部分 UIKit 是。因此,如果您要询问 NSObject 的任何子类是否可以动画,那么他们不能。如果你的意思是问UIView 的子类是否可以动画化,那么答案是肯定的。它们也可以是不同的子类。虽然这是可能的,但这并不意味着它会给我们带来正确的结果。他们可能最终看起来很奇怪。你可能不想这样做。

    图层也可以设置动画。

    但这一切都取决于您所说的类。

    动画到新的视图控制器

    假设你想改变你在视图控制器之间切换的方式,你可以使用UIViewtransitionWithView: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];
    

    【讨论】:

    • @deepak:类意味着一个新的不同文件(包含 .h 和 .m 文件)。这里的转换我的意思是就像从一个类导航到另一个具有卷页效果的类。有没有可能???
    • 如果你指的是视图控制器,你可以在它们的view 属性之间进行转换。
    • 你从一个视图控制器转换到另一个视图控制器。有可能吗??
    • 嘿,UIViewAnimationOptionTransitionCurlUp 出现错误,即未声明。我们应该为此导入一些框架吗?
    • 您正在测试的 iOS 版本是什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-16
    • 1970-01-01
    • 1970-01-01
    • 2011-10-08
    相关资源
    最近更新 更多