【问题标题】:Unable to Get UIButton to Fade In on ViewDidLoad无法让 UIButton 在 ViewDidLoad 上淡入
【发布时间】:2015-04-23 01:48:38
【问题描述】:

如标题所述,我无法让 UIButton 在 ViewDidLoad 方法上淡入。到目前为止,这是我的代码:

ViewController.swift

import UIKit
import QuartzCore
class ViewController: UIViewController {

    @IBOutlet weak var nextButton: UIButton!

    override func viewDidLoad() {
        super.viewDidLoad()

        self.nextButton.fadeIn(duration: 10.0, delay: 10.0)
    }
}

UIViewExtensions.swift

import Foundation
import UIKit

extension UIView {
    func fadeIn(duration: NSTimeInterval = 1.0, delay: NSTimeInterval = 0.0, completion: ((Bool) -> Void) = {(finished: Bool) -> Void in}) {
        UIView.animateWithDuration(duration, delay: delay, options: UIViewAnimationOptions.CurveEaseIn, animations: {
            self.alpha = 1.0
            }, completion: completion)  }

    func fadeOut(duration: NSTimeInterval = 1.0, delay: NSTimeInterval = 0.0, completion: (Bool) -> Void = {(finished: Bool) -> Void in}) {
        UIView.animateWithDuration(duration, delay: delay, options: UIViewAnimationOptions.CurveEaseIn, animations: {
            self.alpha = 0.0
            }, completion: completion)
    }
}

【问题讨论】:

  • 您调用了淡入,但您确定您之前将 alpha 设置为 0。如果只是初始化视图,则无法从 1 动画到 1。

标签: ios iphone swift uiview uibutton


【解决方案1】:

您不想在 viewDidLoad 上启动任何动画,例如淡入。当类完成初始化时(就在初始化之后)调用此方法。它发生在视图可见之前。您想在 viewDidAppear 中启动动画。一旦视图在屏幕上可见,就会调用它。当您在 viewDidLoad 中启动它时,它在到达 viewDidAppear 时已经完成了动画,当然假设您在大约 0.5 秒内完成了淡入淡出。

【讨论】:

  • 好的,谢谢!我将它添加到 ViewDidAppear 中,但是 UIButton 淡入的动画仍然只是简单地出现。
  • 是的,这是将其移动到 viewDidAppear 并将 alpha 设置为在动画块之前从 0 开始的组合。然后在动画块内的持续时间内将 alpha 提高到 1。
【解决方案2】:

将故事板上的按钮 alpha 设置为 0,以便您可以淡入。

因为,如果你的按钮 alpha 为 1,那么你想动画到 1,IOS 什么都不做

 override func viewDidAppear(animated: Bool) {
        self.button.fadeIn(duration: 3, delay: 0)

    }

【讨论】:

  • 啊,我不知道我怎么会忘记这个!无论如何,将它的 alpha 设置为 0 后,它仍然不会淡入 - 它仍然是不可见的。
  • 在你的函数中,你必须等待 10 秒。设置为0,放入viewDidAppear,查看更新。我觉得更好,因为你的动画持续时间太长了
猜你喜欢
  • 2011-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多