gpt4 book ai didi

ios - 难道不是应该只每帧调用一次layoutSubviews吗?

转载 作者:行者123 更新时间:2023-12-01 19:34:13 25 4
gpt4 key购买 nike

我认为view.layoutSubviews()每帧被调用一次,以避免计算布局太多次。这就是存在view.setNeedsLayout()的全部原因。这样您可以多次调用view.setNeedsLayout(),包括每帧调用多次,但是只计算一次。这就是为什么您还有第二种方法view.layoutIfNeeded()可以立即计算布局的原因。

这似乎不是这里发生的情况:

class MyViewController: UIViewController {

var time = Date().timeIntervalSince1970

override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = .cyan


Timer.scheduledTimer(withTimeInterval: 0.001, repeats: true) { (timer) in
self.view.setNeedsLayout()
print("hello")
}

}

override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
let newDate = Date().timeIntervalSince1970
print("Layout called at time: \(newDate - time)")
time = newDate
}

}

这里发生的是“在时间上调用布局...”以0.001的间隔被调用。

最佳答案

它不是每帧一次,而是运行循环的每次迭代一次。由于您的应用实际上并没有执行任何操作,因此这大约与您的时间间隔一样快。

关于ios - 难道不是应该只每帧调用一次layoutSubviews吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60725594/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com