我UIPresentationController
用来显示底部提示。有时,presentationController
可能会出现另一个控制器。并且,当关闭显示的控制器时,presentationController的高度也被更改。那么,为什么它改变了,我该如何解决这个问题。代码如下:
class ViewController: UIViewController {
let presentVC = UIViewController()
override func viewDidLoad() {
super.viewDidLoad()
DispatchQueue.main.asyncAfter(deadline: .now() + 1) { [weak self] in
guard let `self` = self else { return }
self.presentBottom(self.presentVC)
}
DispatchQueue.main.asyncAfter(deadline: .now() + 2) { [weak self] in
guard let `self` = self else { return }
let VC = UIViewController()
VC.view.backgroundColor = .red
self.presentVC.present(VC, animated: true, completion: {
DispatchQueue.main.asyncAfter(deadline: .now() + 1) {
VC.dismiss(animated: true, completion: nil)
}
})
}
}
} …
Run Code Online (Sandbox Code Playgroud) 我知道当 runloop 处于 state 时,自动释放池会释放对象kCFRunLoopBeforeWaiting
。
所以我创建了一个后台线程,默认情况下 runloop 不运行。
如果我在这个后台线程中使用自动释放池,它什么时候释放对象。
我知道类中有一个方法列表。我也知道动态调度的机制。但是我对静态调度感到困惑。静态方法在哪里。全局哈希表中是否有静态方法。以及静态调度如何工作。流程是什么样的。