简单的动画问题Xcode 7 Swift

时间:2015-10-24 09:14:31

标签: ios xcode swift animation uiimage

我似乎无法在Xcode中制作一个简单的淡入淡出动画。

我想做的就是在viewDidLoad(工作正常)后2秒内使图像淡入淡出,但是一旦我为淡出动画添加代码,图像就不会被隐藏。

这是我的代码:

image.alpha = 0


UIView.animateWithDuration(1, delay: 2, options: [], animations: { () -> Void in
        self.image.alpha = 1
        }, completion: nil)

    UIView.animateWithDuration(1, delay: 3, options: [], animations: { () -> Void in
        self.image.alpha = 0
        }, completion: nil)

我正在使用UIImages进行动画制作。

2 个答案:

答案 0 :(得分:1)

试试这个:

UIView.animateWithDuration(1, delay: 2, options: [], animations: { () -> Void in
    self.image.alpha = 1
    }, completion: {
        UIView.animateWithDuration(1, delay: 3, options: [], animations: { () -> Void in
            self.image.alpha = 0
        }, completion: nil)
})

简单规则:在开始使用其他动画之前等待一个动画完成。你是背靠背执行它们导致第一个没有效果的状态。

答案 1 :(得分:0)

简单地在同一范围内链接ControlsView动画就像是有问题的。实现你所描述的效果的一种方法是在第一个动画的完成块中调用第二个动画,就像这样

UIView.animateWithDuration

编辑:这与您描述的问题没有直接关系,只是根据您问题的措辞添加一些一般性建议:开始初始化通常会更好视图控制器的self.image.alpha = 0 UIView.animateWithDuration(1, delay: 2, options: [], animations: { () -> Void in self.image.alpha = 1 }, completion: { finished in UIView.animateWithDuration(1, delay: 0, options: [], animations: { () -> Void in self.image.alpha = 0 }, completion: nil) }) viewWillAppear方法中的定时动画。调用viewDidAppear并不一定意味着视图会立即显示,这可能会导致您的时间失效(特别是如果您的视图在内存和资源方面变得更复杂)。