Swift - 快照未渲染的视图会导致空快照

时间:2015-08-12 01:00:33

标签: ios swift

我的变种:

@IBOutlet weak var imageView: UIImageView!

拍照功能:

func takePhoto(){
        let picker = UIImagePickerController()

        picker.delegate = self
        picker.sourceType = .Camera

        presentViewController(picker, animated: true, completion: nil)
    }

错误讯息:

  

快照未渲染的视图会导致空白   快照。确保您的视图至少在之前呈现过一次   屏幕更新后的快照或快照

有什么想法吗?

6 个答案:

答案 0 :(得分:2)

我遇到了同样的问题 - 一旦我打电话给VC,我有两个选择 - 从照片或自拍 - 当我选择自拍即照相机Xcode打印该消息但不是离子我选择照片 - 所以我的猜测是它的相机应用程序中的错误。 它从来没有崩溃我的应用程序所以我忽略它代码:

@IBAction func openCameraButton(sender: AnyObject) {
    if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.Camera) == true {
        camera = true
        imagePicker.delegate = self
        imagePicker.sourceType = .Camera
        imagePicker.allowsEditing = false
        self.presentViewController(imagePicker, animated: true, completion: nil)
    }else{
        noCamera()

    }
}

答案 1 :(得分:1)

确保您拥有:

super.viewDidLoad()
在你的viewDidLoad函数中

答案 2 :(得分:1)

将您的self.presentViewControllerself.navigationController?.showViewController置于dispatch_async(dispatch_get_main_queue()) {

之内
dispatch_async(dispatch_get_main_queue()) {
  self.presentViewController(imagePicker, animated: true, completion: nil)
}   

答案 3 :(得分:0)

您的代码看起来很好。我会重新启动XCode并仔细检查你的didFinishPickingImage方法,以确保它正常关闭。问题可能出在你的转型上。这在过去几次发生在我身上,从未成为一件大事。

答案 4 :(得分:0)

您可能过快地将其分配给另一个UIImageView,尝试先将其保存在另一个变量中,然后在func ViewDidLoad中将该图像放入UIImageView中。这对我有用!

答案 5 :(得分:0)

转到设置 - >隐私 - >相机并启用或禁用单个应用程序的相机访问

当密钥:“CFBundleDisplayName”在Info.plist中有一个空字符串值时,似乎会出现此问题。