繁体   English   中英

从库中选择图像不会调用“ didFinishPickingImage”功能-Swift

[英]Selecting image from library doesn't call “didFinishPickingImage” function - Swift

我有一个UIImagePickerController,可以选择从库中选择。

调用accessLibrary按钮时,它会提示另一个源类型为.PhotoLibrary UIImagePickerController。

func accessLibrary(sender: UIButton!) {
    NSLog("access library")
    choseFromLibrary = true
    self.libraryPicker = UIImagePickerController()
    self.libraryPicker!.allowsEditing = false
    self.libraryPicker!.sourceType = .PhotoLibrary

    self.presentViewController(self.libraryPicker!, animated: true, completion: nil)
}

这一切都很好,但是当用户选择照片时,我想将该图像传递给视图,然后在屏幕上显示该视图。

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
    let metadata = info[UIImagePickerControllerMediaMetadata] as? NSDictionary
    var image = info[UIImagePickerControllerOriginalImage] as? UIImage
    if (image != nil) {
        if (choseFromLibrary) {
            let cnfrmImgView = ConfirmImageView.init(image: image!)
            self.view.addSubview(cnfrmImgView)
        }
        else {
            if (frontFacing) {
                image! = UIImage(CGImage: image!.CGImage!, scale: 1.0, orientation: .LeftMirrored)
            }
            let cnfrmImgView = ConfirmImageView.init(image: image!)
            self.view.addSubview(cnfrmImgView)
        }
    }
}

如果使用相机而非库拍摄图像,则上述功能有效。

当用户从图库中选择照片时,图库选择器控制器将自动关闭自身,并且不会显示视图。

我运行了一个NSLog("here")来检查从库中选择时是否调用了didFinishPickingImageWithInfo函数,而实际上却没有。

didFinishPickingImageWithInfo是一个委托消息( UIImagePickerControllerDelegate )。 但是,问题是您没有给图像选择器任何delegate 因此,它没有人向其发送委托消息。

如果您想实现像图像选择器这样的Instagram,而不是尝试此操作

像Instagram一样的图片选择器

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM