gpt4 book ai didi

ios - 调出新 View 非常慢

转载 作者:行者123 更新时间:2023-11-30 14:07:09 25 4
gpt4 key购买 nike

我正在调出一个新 View ,但显示它的次数越多,它的速度就越慢。它是一个自定义相机 View Controller ,每次我拍摄视频或照片并发布然后再次打开相机时,速度都非常慢。

似乎要花很长时间并且添加 View 的次数越多速度就越慢的方法是 self.addChildViewController 和 self.cameraView.insertSubview

相关代码如下:

NSOperationQueue.mainQueue().addOperationWithBlock() {
let controller = self.storyboard?.instantiateViewControllerWithIdentifier("CameraCaptureViewController") as! CameraCaptureViewController
println("after instantiate viewcontrolller")
controller.view.setTranslatesAutoresizingMaskIntoConstraints(false)
controller.captureDelegate = self
controller.mediaType = typeString

controller.customCaptureButton = self.mediaButton

self.addChildViewController(controller)
println("after addChildViewController")
controller.view.backgroundColor = UIColor(white: 1.0, alpha: 0.15)
self.cameraView.insertSubview(controller.view, atIndex:1)
println("after insertSubview")
//Swapping controls to the main view button.

self.cameraView.userInteractionEnabled = true

self.cameraView.layoutIfNeeded()
controller.didMoveToParentViewController(self)
println("after didMoveToParentViewController")
self.captureController = controller
println("in op queue end")
}

此外,当它被解除时,这是运行的代码:

captureController.willMoveToParentViewController(nil)
captureController.view.removeFromSuperview()
captureController.removeFromParentViewController()

cameraView.userInteractionEnabled = false
for view in self.cameraView.subviews {
view.removeFromSuperview()
}
self.captureController = nil

如何进一步调试?什么可能会减慢这些方法的速度?

最佳答案

与往常一样,当速度缓慢时,您应该怀疑您是在后台线程上调用代码。。 (您自己的 println("in op queue end") 表明情况确实如此。)缓慢只是对更深层次问题的诊断。在后台线程上以任何方式、形状或形式触摸界面都是非法的 - 这就是您在说self.cameraView.insertSubview时所做的事情。

关于ios - 调出新 View 非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32232481/

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