MST

星途 面试题库

面试题:Swift中如何使用Core Animation实现一个简单的视图淡入动画

请用Swift代码实现一个视图从透明度0到1的淡入动画,要求使用Core Animation框架,并考虑动画的持续时间和完成后的回调处理。
23.1万 热度难度
编程语言Swift

知识考点

AI 面试

面试题答案

一键面试
import UIKit
import QuartzCore

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        let targetView = UIView(frame: CGRect(x: 100, y: 100, width: 200, height: 200))
        targetView.backgroundColor = .red
        view.addSubview(targetView)

        let fadeInAnimation = CABasicAnimation(keyPath: "opacity")
        fadeInAnimation.fromValue = 0
        fadeInAnimation.toValue = 1
        fadeInAnimation.duration = 2 // 动画持续时间为2秒
        fadeInAnimation.delegate = self
        targetView.layer.add(fadeInAnimation, forKey: "fadeInAnimation")
    }
}

extension ViewController: CAAnimationDelegate {
    func animationDidStop(_ anim: CAAnimation, finished flag: Bool) {
        if flag {
            print("动画完成")
            // 这里可以添加动画完成后的回调处理逻辑
        }
    }
}