Make a simple fade in animation in Swift?

前端 未结 6 1076
一个人的身影
一个人的身影 2021-01-30 08:08

I am trying to make a simple animation in Swift. It is a fade in.

I attempted:

self.myFirstLabel.alpha = 0
self.myFirstButton.alpha = 0
         


        
6条回答
  •  误落风尘
    2021-01-30 08:53

    import UIKit
    
    /*
     Here is simple subclass for CAAnimation which create a fadeIn animation
     */
    
    class FadeInAdnimation: CABasicAnimation {
        override init() {
            super.init()
            keyPath = "opacity"
            duration = 2.0
            fromValue = 0
            toValue = 1
            fillMode = CAMediaTimingFillMode.forwards
            isRemovedOnCompletion = false
        }
    
        required init?(coder aDecoder: NSCoder) {
            super.init(coder: aDecoder)
        }
    }
    
    /*
     Example of usage
     */
    
    class ViewController: UIViewController {
    
        weak var label: UILabel!
    
        override func loadView() {
            let view = UIView()
            view.backgroundColor = .white
    
            let label = UILabel()
            label.alpha = 0
            label.frame = CGRect(x: 150, y: 200, width: 200, height: 20)
            label.text = "Hello World!"
            label.textColor = .black
            view.addSubview(label)
            self.label = label
    
            let button = UIButton(type: .custom)
            button.frame = CGRect(x: 0, y: 250, width: 300, height: 100)
            button.setTitle("Press to Start FadeIn", for: UIControl.State())
            button.backgroundColor = .red
            button.addTarget(self, action: #selector(startFadeIn), for: .touchUpInside)
            view.addSubview(button)
    
            self.view = view
        }
    
        /*
         Animation in action
         */
        @objc private func startFadeIn() {
            label.layer.add(FadeInAdnimation(), forKey: "fadeIn")
        }
    
    }
    

提交回复
热议问题