Ich möchte ein Rechteck innerhalb einer for-Schleife verschieben, um eine zufällige Wanderung zu erstellen. Aber ich bekomme nur die Endposition, keine Bewegung dazwischen. Was muss ich tun, um die einzelnen Schritte zu sehen?Wie animiere ich UIView mit einer for-Schleife?
import UIKit
import PlaygroundSupport
class ViewController:UIViewController{
override func viewDidLoad() {
super.viewDidLoad()
}
}
class bird: UIView {
var x:CGFloat
var y:CGFloat
override init(frame: CGRect){
self.x=0
self.y=0
super.init(frame: frame)
}
func stepit(dx: CGFloat, dy: CGFloat){
self.frame.origin.x += dx
self.frame.origin.y += dy
}
override func draw(_ rect: CGRect) {
self.backgroundColor = #colorLiteral(red: 0.960784316062927, green: 0.705882370471954, blue: 0.200000002980232, alpha: 1.0)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
let viewController = ViewController()
PlaygroundPage.current.liveView = viewController
PlaygroundPage.current.needsIndefiniteExecution = true
let b=bird(frame: CGRect(x: 0, y: 0, width: 20, height: 20))
viewController.view.addSubview(b)
for i in i... 100 {
b.stepit(dx: CGFloat(arc4random_uniform(10)), dy: CGFloat(arc4random_uniform(10)))
}
Ich sehe deine alle Caps, und du meine downvote erhöhen. – Alexander
etwas Forschung, und es ist auch eine gute Idee, Namenskonventionen zu folgen. –
Ich bin mir nicht sicher, ob Sie klar verstehen, wie der Run-Loop-Zyklus in iOS funktioniert ...? – holex