【问题标题】:UIImagePickerController slow on opening for the first time, except for when you double tapUIImagePickerController 第一次打开很慢,双击时除外
【发布时间】:2016-08-07 22:25:04
【问题描述】:

我在 iOS 9 上遇到了这种非常奇怪的行为,我有一个 tableViewCell,当你第一次点击单元格时,当你点击它来拍照时,它会打开一个 imagePicker就像 10 秒打开选择器,但是当你点击它两次时它会立即打开......

picker的初始化代码如下

let certificateImagePicker = UIImagePickerController()
certificateImagePicker.delegate = self
certificateImagePicker.allowsEditing = false
certificateImagePicker.sourceType = .Camera
certificateImagePicker.modalPresentationStyle = .CurrentContext

显示选择器的代码是presentViewController(certificateImagePicker, animated: false, completion: nil)

我现在不知道它是否相关,但在打开选择器后它会显示此错误消息

对尚未渲染的视图进行快照会导致快照为空。 确保您的视图在快照或 屏幕更新后的快照。

【问题讨论】:

  • 您是在后台线程中展示选择器吗?另外,为什么要将演示样式设置为.CurrentContext

标签: ios swift uiimagepickercontroller


【解决方案1】:

我在第一次尝试提交UIImagePickerController 时遇到了类似的延迟。对我来说有很大帮助的是在初始化父 UIViewController 时初始化它,如下所示:

class ExampleViewController: UIViewController, UIImagePickerControllerDelegate {
  let imagePicker = UIImagePickerController()

  func presentImagePicker() {
    imagePicker.delegate = self
    imagePicker.allowsEditing = false
    imagePicker.sourceType = .camera
    imagePicker.modalPresentationStyle = .currentContext
    self.present(imagePicker, animated: false, completion: nil)
  }
}

【讨论】:

    【解决方案2】:

    这仅适用于调试版本,当您运行连接到 Xcode 的应用程序时。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多