【问题标题】:Fade Out/In UiView Animation淡出/淡入 UiView 动画
【发布时间】:2015-03-27 15:43:32
【问题描述】:

我正在使用 Swift。

我有一个名为fadeButtonsOut 的函数,它会在我的游戏结束时被调用。我有一组 UIButtons(图块),我想先淡出然后再淡入。

函数是:

    func fadeButtons(){

        var tileArrayCopy = tileArray

        for index in 0..<tileArrayCopy.count{

            UIView.animateWithDuration(1.5, 
                                  delay: 0, 
                                  options: UIViewAnimationOptions.CurveLinear, 
                                  animations: {
                  tileArrayCopy[index].alpha = 0
                  }, completion: { (Bool) -> Void in

                UIView.animateWithDuration(1.5,
                                            animations: {
                    tileArrayCopy[index].alpha = 1
                   }, completion: nil)
          })
     }
}

问题是fadeOut 动画被fadeIn 动画覆盖。基本上淡出立即发生然后淡入正常动画。我把fadeIn放在fadeOut的完成中,为什么会这样?我希望 FadeOut 进行动画处理,然后在 fadeOut 完成后让 fadeIn 进行动画处理。

【问题讨论】:

    标签: ios swift uiview uiviewanimation


    【解决方案1】:

    您发布的代码看起来很合理,但它是在一组视图(按钮?)中的单个条目上运行的

    它使用实例变量索引?我假设您有一个循环重复调用此方法?

    实例变量的处理可能是你的问题。使函数采用 int 参数作为索引,并重写您的动画代码以使用它。然后让你的循环传入索引。

    func fadeButtonsOut(tileIndex: Int)
    {
      UIView.animateWithDuration(
        1.5, 
        delay: 0, 
        options: UIViewAnimationOptions.CurveLinear, 
        animations: 
        {
          tileArrayCopy[tileIndex].alpha = 0
        }, 
        completion: 
        { 
          (Bool) -> Void in
          UIView.animateWithDuration(1.5, 
            animations: 
            {
              tileArrayCopy[tileIndex].alpha = 1
            }, 
            completion: nil)
        })
    }
    

    然后这样称呼它:

    for tileIndex in 1..tileArrayCopy.count
    {
      fadeButtonsOut(tileIndex)
    }
    

    顺便说一句,空白是你的朋友。不要将 10 吨代码塞进一行。它使代码非常难以阅读。

    【讨论】:

    • 我已经更新了问题,以提供fadeButtonsOut 函数中的所有代码。能否请您再看看它可能出了什么问题?
    • 您需要展示变量索引是如何定义/更改的,以及调用您的方法的代码。
    猜你喜欢
    • 2014-01-20
    • 2012-12-18
    • 2013-01-24
    • 2011-03-28
    • 1970-01-01
    • 2019-02-11
    • 1970-01-01
    • 1970-01-01
    • 2022-11-14
    相关资源
    最近更新 更多