iOS Swift - 无法使用数组[UIViewAnimationOptions]更改动画选项

3

关于Swift 2中array的动画选项,我有一些问题。我可以像下面这样在array中添加多个选项:[.Repeat, UIViewAnimationOptions.Autoreverse]。如果我将其添加到动画函数中(第一个示例),则代码如下:

UIView.animateWithDuration(1, delay: 0, options: [.Repeat, UIViewAnimationOptions.Autoreverse], animations: {

    }) { (true) in

    }

但是我不能像第二个例子中这样在数组中添加动画选项:

var animationOptions = [UIViewAnimationOptions]()
animationOptions.append(UIViewAnimationOptions.Repeat)
animationOptions.append(UIViewAnimationOptions.Autoreverse)
UIView.animateWithDuration(1, delay: 0, options: animationOptions, animations: {

    }) { (true) in

    }

有人能帮我把动画选项制作成类似第二个示例中的数组吗?

2个回答

5
    var animationOptions:UIViewAnimationOptions = .repeat
    animationOptions.insert(.autoreverse)
    UIView.animate(withDuration: 0.1, delay: 0.1, options: animationOptions, animations: {

    }) { (success:Bool) in

    }

您需要使用SetAlgebra协议中的insert方法,而OptionSet符合此协议。在该问题中,您正在使用Array对象而非UIViewAnimationOptions。


哇哦,非常感谢 @New16。这回答了我的问题! - icaksama

0

您可以像这样使用动画选项:

Swift 2

UIView.animateWithDuration(0.2, delay: 0.0, options: [.Repeat, 
.Autoreverse, .CurveLinear, .CurveEaseOut, .CurveEaseInOut,
.TransitionCurlUp, .TransitionCurlDown, 
.TransitionFlipFromBottom,.TransitionFlipFromLeft,.TransitionFlipFromRight, 
.BeginFromCurrentState, .CurveEaseIn], animations: {}, completion: nil)

Swift 3, 4, 5

UIView.animate(withDuration: 0.2, delay: 0.0, options: [.repeat, 
.autoreverse, .curveLinear, .curveEaseOut, .curveEaseInOut,
.transitionCurlUp, .transitionCurlDown, 
.transitionFlipFromBottom,.transitionFlipFromLeft,.transitionFlipFromRight, 
.beginFromCurrentState, .curveEaseIn], animations: {}, completion: nil)

谢谢您的回答,但我需要在数组中有多个动画选项,这样我就可以添加无限的动画选项。 请查看我问题中的第二个示例。 - icaksama
UIView.animateWithDuration(0.2, delay: 0.0, options: [.Repeat, .Autoreverse, .CurveLinear, .CurveEaseOut, .CurveEaseInOut, .TransitionCurlUp, .TransitionCurlDown, .TransitionFlipFromBottom,.TransitionFlipFromLeft,.TransitionFlipFromRight, .BeginFromCurrentState, .CurveEaseIn], animations: {}, completion: nil) - Yuvaraj M
你能把这些值添加到数组变量中吗?"[.Repeat, .Autoreverse, .CurveLinear, .CurveEaseOut, .CurveEaseInOut, .TransitionCurlUp, .TransitionCurlDown, .TransitionFlipFromBottom,.TransitionFlipFromLeft,.Transitio‌​nFlipFromRight, .BeginFromCurrentState, .CurveEaseIn]" - icaksama

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