[英]How to run a loop in ViewDidAppear in Swift?
我想在应用启动时交替显示一个蓝色和黑色矩形。 我写了这段代码。 它的编译很好,没有任何错误,但是没有结果。
import UIKit
class ViewController: UIViewController {
var mybool = true
override func viewDidAppear(_ animated: Bool) {
while(mybool){
let firstFrame = CGRect(x: 160, y: 240, width: 100, height: 150)
let firstView = UIView(frame: firstFrame)
firstView.backgroundColor = UIColor.blue
view.addSubview(firstView)
let secondView = UIView(frame: firstFrame)
secondView.backgroundColor = UIColor.black
view.addSubview(secondView)
}
}
}
谁能告诉我我要去哪里错了?
提前致谢
永远不要while
等待属性在主线程上更改时运行! 这是整个UI所依赖的线程。 该应用程序看起来已经崩溃,iOS迟早会杀死它。
使用核心动画:
weak var loadingView: UIView!
override func viewDidLoad() {
super.viewDidLoad()
let frame = CGRect(x: 160, y: 240, width: 100, height: 150)
let subview = UIView(frame: frame)
subview.backgroundColor = .black
self.view.addSubview(subview)
UIView.animate(withDuration: 1, delay: 0, options: [.autoreverse, .repeat, .curveEaseInOut], animations: {
subview.backgroundColor = .blue
}, completion: nil)
self.loadingView = subview
}
当您要停止动画时(例如,加载完成时):
func stopAnimation() {
loadingView.layer.removeAllAnimations()
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.