Для создания анимации «заполняющегося таймера» в Swift, вы можете использовать класс CALayer и его свойство strokeEnd.
1. Создайте новый проект в Xcode и откройте файл ViewController.swift.
2. Импортируйте модуль UIKit:
import UIKit
3. Создайте новую функцию, которая будет настраивать анимацию:
func startTimerAnimation() { // Создаем путь с формой круга let path = UIBezierPath(arcCenter: view.center, radius: 100, startAngle: -.pi / 2, endAngle: .pi * 2, clockwise: true) // Создаем слой CAShapeLayer и устанавливаем его путь let shapeLayer = CAShapeLayer() shapeLayer.path = path.cgPath // Настраиваем цвета для заполненной и не заполненной части таймера shapeLayer.strokeColor = UIColor.green.cgColor shapeLayer.fillColor = UIColor.clear.cgColor // Устанавливаем ширину линии для таймера shapeLayer.lineWidth = 10 // Устанавливаем начальное значение strokeEnd в 0 shapeLayer.strokeEnd = 0 // Добавляем слой в представление view.layer.addSublayer(shapeLayer) // Создаем анимацию, которая будет постепенно увеличивать значение strokeEnd до 1 let animation = CABasicAnimation(keyPath: "strokeEnd") animation.toValue = 1 animation.duration = 10 // Длительность анимации (в секундах) // Делаем анимацию плавной animation.timingFunction = CAMediaTimingFunction(name: .easeInEaseOut) // Добавляем анимацию на слой shapeLayer.add(animation, forKey: "timerAnimation") }
4. Вызывайте функцию startTimerAnimation() в методе viewDidLoad() вашего контроллера или в любом другом месте, где вы хотите запустить анимацию таймера:
override func viewDidLoad() { super.viewDidLoad() // Вызываем функцию начала анимации startTimerAnimation() }
После запуска вашего приложения вы увидите анимацию таймера, которая будет постепенно заполняться за указанное время (10 секунд в данном примере). Вы также можете настроить значения, такие как радиус круга, цвет заполненной и не заполненной части, ширину линии таймера и длительность анимации, в соответствии с вашими потребностями.