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

Posted

技术标签:

【中文标题】从枚举类型 \'enum UIViewAnimationOption 到不同枚举类型 uiviewanimation 的隐式转换【英文标题】:implicit conversion from enumeration type 'enum UIViewAnimationOption to different enumeration type uiviewanimation transition从枚举类型 'enum UIViewAnimationOption 到不同枚举类型 uiviewanimation 的隐式转换 【发布时间】:2013-03-19 07:50:15 【问题描述】:

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

- (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)

        ];
    ];

但我收到警告从枚举类型“enum UIViewAnimationOption 到不同枚举类型 uiviewanimation 转换的隐式转换。

但如果我给出 UIViewAnimationTransitionFlipFromRight,UIViewAnimationTransitionCurlUp ..... 它正在工作,但 animatewithoptions 会发出警告。

谁能帮帮我?

【问题讨论】:

实际上我需要反向交叉溶解效果。有人也可以帮助我吗? 你为什么要定义 UIViewAnimationOptions 枚举? 删除 typedef 将解决您的问题。 @wattson12 我添加 typedef 以删除该警告 警告的出现是有原因的,它告诉你有问题 【参考方案1】:

您正在使用UIViewAnimationOption 的枚举。

UIViewAnimationTransition 定义的枚举是:

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

请查看UIView Class 以供参考。

也删除你定义的枚举,不需要它。 ios 已经有 UIView 类的枚举。

【讨论】:

【参考方案2】:

你不需要 typedef 动画选项枚举,它已经完成了

错误告诉你出了什么问题,当方法需要 UIViewAnimationTransition 时,你传入了一个类型 UIViewAnimationOption

动画过渡的有效选项是:

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

【讨论】:

但是这个分类没有溶解效果。如何获得溶解效果 溶解效果是一个动画选项,因此您需要使用该设置作为选项来制作动画。它不是您可以访问的默认转换之一。您应该使用 transitionToView: 方法,请参见此处:***.com/a/9546262/1138900

以上是关于从枚举类型 'enum UIViewAnimationOption 到不同枚举类型 uiviewanimation 的隐式转换的主要内容,如果未能解决你的问题,请参考以下文章

java怎么声明枚举类型

enum类型

enum怎么用?

c语言中,啥是枚举类型(enum),给个例子?

枚举类型 typedef enum....; enum....; 这两个的区别

c语言枚举类型enum用法