从枚举类型'枚举UIViewAnimationOption到不同的枚举类型uiviewanimation过渡的隐式转换

时间:2013-03-19 07:50:15

标签: ios cocoa-touch core-animation

这是我为图像提供交叉解析效果的代码

- (void)viewDidLoad
{
    [super viewDidLoad];
    typedef enum
    {
        UIViewAnimationOptionTransitionCrossDissolve,
        UIViewAnimationOptionTransitionCurlDown,
        UIViewAnimationOptionTransitionCurlUp,
        UIViewAnimationOptionTransitionFlipFromBottom,
        UIViewAnimationOptionTransitionFlipFromLeft
} UIViewAnimationOptions;


    [UIView animateWithDuration:1.0 animations:^(void){

    [UIView setAnimationTransition: UIViewAnimationOptionTransitionCrossDissolve forView:img cache: YES];

    } completion:^(BOOL finished){
        [UIView animateWithDuration:1.0 animations:^(void){
            [UIView setAnimationTransition: UIViewAnimationOptionTransitionCrossDissolve forView:img cache: YES];
        } completion:^(BOOL finished){

        }];
    }];
}

但是我得到一个警告隐式转换从枚举类型'枚举UIViewAnimationOption到不同的枚举类型uiviewanimation过渡。

但是如果我给 UIViewAnimationTransitionFlipFromRight,UIViewAnimationTransitionCurlUp ..... 它正在运行,但是animatewithoptions正在发出警告。

任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:2)

您正在使用UIViewAnimationOption的枚举。

UIViewAnimationTransition定义的枚举是:

typedef enum {
   UIViewAnimationTransitionNone,
   UIViewAnimationTransitionFlipFromLeft,
   UIViewAnimationTransitionFlipFromRight,
   UIViewAnimationTransitionCurlUp,
   UIViewAnimationTransitionCurlDown,
} UIViewAnimationTransition;

请检查UIView Class以供参考。

同时删除您定义的枚举,不需要它。 iOS已经有UIView类的枚举。

答案 1 :(得分:0)

你不需要输入动画选项enum,它已经完成了

错误告诉您出现了什么问题,当方法需要UIViewAnimationOption

时,您传入的是UIViewAnimationTransition类型

动画转换的有效选项是:

typedef enum {    
    UIViewAnimationTransitionNone,    
    UIViewAnimationTransitionFlipFromLeft,   
    UIViewAnimationTransitionFlipFromRight,    
    UIViewAnimationTransitionCurlUp,    
    UIViewAnimationTransitionCurlDown, 
} UIViewAnimationTransition;