我有一个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
函数,实际上并非如此。
答案 0 :(得分:3)
didFinishPickingImageWithInfo
是委托消息(UIImagePickerControllerDelegate)。但问题是,你没有给你的图像选择器delegate
!因此,它没有人发送委托消息。
答案 1 :(得分:0)
如果你想实现类似于Instagram的图像选择器而不是尝试这个