Довольно просто подготовить следующую задачу в старой школе: каждые три секунды новый вид (подпредставление) появляется в новой позиции. Вот код:
import UIKit
class ViewController: UIViewController {
var someView = UIView()
var posX : CGFloat = 10
var posY : CGFloat = 10
var timer:Timer!
var loopCount = 1
override func viewDidLoad() {
super.viewDidLoad()
startTimer()
view.backgroundColor = .purple
}
func setView() {
someView = UIView(frame: CGRect(x: posX, y: posY, width: 10, height: 10))
someView.backgroundColor = UIColor.orange
view.addSubview(someView)
}
func startTimer() {
if timer == nil {
timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(loop), userInfo: nil, repeats: true)
}
}
@objc func loop(){
if (loopCount % 3 == 0) {
posX += 15
posY += 15
setView()
}
loopCount += 1
}
}
SwiftUI значительно упрощает многие вещи, но, боюсь, не эту. По крайней мере, я не мог найти простой способ решить это до сих пор. У кого-нибудь есть идеи?
Вот экран с результатом (через несколько секунд):