CATransition未声明?

10

我正在尝试初始化一个CATransition实例,但xCode一直告诉我存在一个“使用未声明的标识符'CATransition'。您是指"kCATransition"吗?

问题出在这行代码上:

CATransition* transition = [CATransition animation];

我做错了什么?我在网上找到了这段代码很多次,但是我无法弄清楚我做了什么不同的地方。

编辑:好的,我已经像建议的那样导入了Quartz

#import <QuartzCore/QuartzCore.h>

但是现在我在下一行代码中收到不同的消息:"发送 'NSString *const' 到类型为 'NSCellType' 的参数会导致指针与整数不兼容的转换"

CATransition* transition = [CATransition animation];
[transition setType:kCATransitionPush];
2个回答

28
#import <QuartzCore/QuartzCore.h>

你可能需要进行一次全新的构建以应用这个更改。在我进行了一次全新的构建之前,它对我来说是不起作用的。 - BradS

2

你绝对需要使用 #import

这里是我的 CATransition 示例:

 - (IBAction)FavButtonPressed:(id)sender
 {

 FavoritesViewController *favVC = [self.storyboard instantiateViewControllerWithIdentifier:@"FavoritesViewController"];

UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:favVC];



CATransition* transition = [CATransition animation];
transition.duration = 0.3;
transition.type = kCATransitionMoveIn;
transition.subtype = kCATransitionFromBottom;
[self.view.window.layer addAnimation:transition forKey:kCATransition];
[self presentViewController:nav animated:NO completion:nil];


 }

这段代码的作用是:

  1. 实例化我想要转换到的控制器:FavoritesViewController(确保在storyboard上定义了名称)
    1. 分配和初始化导航,以便将nav包含在过渡中
    2. 开始动画,确定类型:https://developer.apple.com/library/mac/documentation/graphicsimaging/reference/CATransition_class/Introduction/Introduction.html
    3. 子类型:您希望它从下往上、从上往下、从右往左...进行
    4. 6.我想呈现nav,并且我想说动画:NO,这意味着我不想使用默认行为

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接