嗨我试图创建边号侧边菜单但是收到警告我已经上了许多选项没有什么对我有用请帮我
我使用过的代码:
-(void) animatedLayerToPoint:(CGFloat)x
{
[UIView animateKeyframesWithDuration:0.3 delay:0
options:UIViewAnimationCurveEaseOut
animations:^{
CGRect frame = self.toplayer.frame;
frame.origin.x = x;
self.toplayer.frame = frame;
}
completion:^(BOOL finished){
self.layerPosition = self.toplayer.frame.origin.x;
}];
}
这是警告我
Implicit conversion from enumeration type 'enum UIViewAnimationCurve' to different enumeration type 'UIViewAnimationOptions' (aka 'enum UIViewAnimationOptions')
我找到了解决方案我已经看到了一些不能正常工作的我xcode 5 link i found solution 在上面链接告诉给予
他们告诉他们说这个UIViewAnimationOptionCurveEaseOut
而不是
UIViewAnimationCurveEaseOut
但它不起作用我需要帮助
答案 0 :(得分:1)
您需要使用:UIViewKeyframeAnimationOptions枚举来解决问题。
animateKeyframesWithDuration:
选择UIViewKeyframeAnimationOptions
选项,因为它是第3个参数。您传递的是UIViewAnimationCurve
枚举,而不是UIViewKeyframeAnimationOptions
。
animateKeyframesWithDuration:delay:options:animations:completion:
创建可用于设置的动画块对象 当前视图的基于关键帧的动画。
+ (void)animateKeyframesWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delay options:(UIViewKeyframeAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion
参数
<强>持续时间强>
整个动画的持续时间,以秒为单位。如果指定负值或0,则立即进行更改 没有动画。
<强>延迟强>
指定开始播放前等待的时间(以秒为单位)。
选项强>
选项掩码,指示您希望如何执行动画。有关有效常量的列表,请参阅 “UIViewKeyframeAnimationOptions”。
<强>动画强>
包含提交视图的更改的块对象。通常,你打电话给 addKeyframeWithRelativeStartTime:relativeDuration:animations:方法 从这个区块里面一次或多次。您也可以更改视图 如果您希望这些更改在整个动画中设置动画,则直接显示值 持续时间。该块不带参数,也没有返回值。做 不要为此参数使用nil值。完成
动画序列结束时要执行的块对象。此块没有返回值,只接受一个布尔参数 表示动画是否在之前完成 完成处理程序被调用。如果动画的持续时间为0, 该块在下一个运行循环周期的开始执行。 您可以为此参数使用nil值。
答案 1 :(得分:1)
在iOS 4.0及更高版本中不鼓励使用此方法。相反,您应该使用animateWithDuration:delay:options:animations:completion:
方法来指定动画和动画曲线选项。
答案 2 :(得分:0)
根据apples docs,选项应该是。
<强> UIViewKeyframeAnimationOptions 强>
与animateKeyframesWithDuration:delay:options:animations:completion: method.
一起使用的关键帧动画选项
选项应如下所示。
typedef enum {
UIViewKeyframeAnimationOptionLayoutSubviews = UIViewAnimationOptionLayoutSubviews,
UIViewKeyframeAnimationOptionAllowUserInteraction = UIViewAnimationOptionAllowUserInteraction,
UIViewKeyframeAnimationOptionBeginFromCurrentState = UIViewAnimationOptionBeginFromCurrentState,
UIViewKeyframeAnimationOptionRepeat = UIViewAnimationOptionRepeat,
UIViewKeyframeAnimationOptionAutoreverse = UIViewAnimationOptionAutoreverse,
UIViewKeyframeAnimationOptionOverrideInheritedDuration = UIViewAnimationOptionOverrideInheritedDuration,
UIViewKeyframeAnimationOptionOverrideInheritedOptions = UIViewAnimationOptionOverrideInheritedOptions,
UIViewKeyframeAnimationOptionCalculationModeLinear = 0 << 9,
UIViewKeyframeAnimationOptionCalculationModeDiscrete = 1 << 9,
UIViewKeyframeAnimationOptionCalculationModePaced = 2 << 9,
UIViewKeyframeAnimationOptionCalculationModeCubic = 3 << 9,
UIViewKeyframeAnimationOptionCalculationModeCubicPaced = 4 << 9
} UIViewKeyframeAnimationOptions;
否则会显示警告,在64位应用程序中,可能会导致严重问题。
答案 3 :(得分:0)
请改用此选项:
UIViewAnimationOptionCurveEaseOut
这真的是你需要改变才能发出警告。