UIViewAnimation 导致从枚举类型隐式转换
Posted
技术标签:
【中文标题】UIViewAnimation 导致从枚举类型隐式转换【英文标题】:UIViewAnimation causes Implicit conversion from enumeration type 【发布时间】:2012-02-23 14:01:53 【问题描述】:我收到此警告
从枚举类型'UIViewAnimationCurve'到不同枚举类型'UIViewAnimationTransition'的隐式转换
从这段代码的最后一行开始
if (((UIView*)[[slideViews subviews] objectAtIndex:0]).frame.origin.x > SLIDE_VIEWS_MINUS_X_POSITION)
UIView* tempRight2View =[[slideViews subviews] objectAtIndex:[[slideViews subviews] count]-1];
[UIView beginAnimations:@"ALIGN_TO_MINIMENU" context:NULL];
[UIView setAnimationTransition:UIViewAnimationCurveEaseInOut forView:viewAtLeft cache:YES];
我正在改编 StackScrollView 的代码,知道如何“显式”转换吗?
TIA
【问题讨论】:
方法[UIView beginAnimations:context:]
已弃用,您不应再使用它。
【参考方案1】:
您正在使用一组不同的枚举:您必须在其中放置一个 UIViewAnimationTransition
typedef enum
UIViewAnimationTransitionNone,
UIViewAnimationTransitionFlipFromLeft,
UIViewAnimationTransitionFlipFromRight,
UIViewAnimationTransitionCurlUp,
UIViewAnimationTransitionCurlDown UIViewAnimationTransition;
当您使用 UIViewAnimationCurve 之一时:
typedef enum
UIViewAnimationCurveEaseInOut,
UIViewAnimationCurveEaseIn,
UIViewAnimationCurveEaseOut,
UIViewAnimationCurveLinear UIViewAnimationCurve
它们仍然是整数,但来自不同的常量组
【讨论】:
【参考方案2】:所有枚举都是整数。
您调用的方法采用UIViewAnimationTransition
。
+ (void)setAnimationTransition:(UIViewAnimationTransition)transition
forView:(UIView *)view
cache:(BOOL)cache;
您将其设置为UIViewAnimationCurve
定义的值之一。
【讨论】:
以上是关于UIViewAnimation 导致从枚举类型隐式转换的主要内容,如果未能解决你的问题,请参考以下文章
警告:从枚举类型“UIInterfaceOrientation”到不同枚举类型“UIDeviceOrientation”的隐式转换?