视图控制器加载时启动操作

时间:2016-08-16 17:20:50

标签: ios swift uiviewcontroller

如何在视图控制器加载到屏幕上时启动操作?

我已经设法使用@IBAction执行我想要的功能,但我不想按下按钮以执行操作,我希望它在页面加载时启动操作

有什么想法吗?

class ViewController: UIViewController {
 var progress: KDCircularProgress!


 @IBOutlet weak var Label1: UILabel!



var LabelText = String()

var scorestart = 1.0
var anglepercent = 3.6


override func viewDidLoad() {
    super.viewDidLoad()




    Label1.text = LabelText

    view.backgroundColor = UIColor(white: 0.22, alpha: 1)

    progress = KDCircularProgress(frame: CGRect(x: 0, y: 0, width: 200, height: 200))
    progress.startAngle = -90
    progress.progressThickness = 0.2
    progress.trackThickness = 0.3
    progress.clockwise = true
    progress.gradientRotateSpeed = 10
    progress.roundedCorners = false
    progress.glowMode = .Forward
    progress.glowAmount = 0.9
    progress.setColors(UIColor.yellowColor())
    progress.center = CGPoint(x: view.center.x, y: view.center.y + 25)
    view.addSubview(progress)
}

@IBAction func Animate(sender: AnyObject) {
    progress.angle = Double(scorestart * anglepercent)
    progress.animateFromAngle(0, toAngle: 270, duration: 2) {
        completed in
        if completed {
            print("animation stopped, completed")
        } else {
            print("animation stopped, was interrupted")
        }

1 个答案:

答案 0 :(得分:1)

使用: -

这里的基本思想是,每当你的视图加载相应的类时,将查看viewWillAppear(animated: Bool)函数,如果它出现在代码中,它将执行其中的所有代码。特定视图的那一刻即将出现在您的用户界面上,viewWillAppear(animated: Bool)中的代码块将被调用。

class ViewController: UIViewController {
  var progress: KDCircularProgress!


  @IBOutlet weak var Label1: UILabel!



  var LabelText = String()

  var scorestart = 1.0
  var anglepercent = 3.6


  override func viewDidLoad() {
      super.viewDidLoad()

      Label1.text = LabelText

      view.backgroundColor = UIColor(white: 0.22, alpha: 1)


    }


 override func viewWillAppear(animated :Bool) {
      super.viewWillAppear(animated)

        progressActn()
          //Setting up your progress layer
        animateActn()
          //Animating that progress layer
  }



@IBAction func Animate(sender: AnyObject) {
       animateActn()
     }

func animateActn(){
       progress.angle = Double(scorestart * anglepercent)
progress.animateFromAngle(0, toAngle: 270, duration: 2) {
    completed in
    if completed {
        print("animation stopped, completed")
    } else {
        print("animation stopped, was interrupted")
    }
  }

  }
 func progressActn(){

      progress = KDCircularProgress(frame: CGRect(x: 0, y: 0, width: 200, height: 200))
      progress.startAngle = -90
      progress.progressThickness = 0.2
      progress.trackThickness = 0.3
      progress.clockwise = true
      progress.gradientRotateSpeed = 10
      progress.roundedCorners = false
      progress.glowMode = .Forward
      progress.glowAmount = 0.9
      progress.setColors(UIColor.yellowColor())
      progress.center = CGPoint(x: view.center.x, y: view.center.y + 25)
      view.addSubview(progress)

 }
}