我们有一个带有图像附件控件的 UIWebview。
当用户点击该控件时,会弹出一个 iOS 操作表。
当用户点击“浏览”或“照片库”时,用户可以选择多个图像。
然后我拦截
- (void)imagePickerController: didFinishPickingMediaWithInfo:
使用我自己的已混合的 ImagePicker ViewController 进行调用。
所以,我的问题是:在didFinishPickingMediaWithInfo
,是否可以检测到已选择多张图像?如果没有,有没有办法强制iOS端的图像选择只允许一张图像?
如果可能的话,我想检测已选择多个图像,然后恢复正常功能(即我不会混合)。
我确实检查了选择器和发送到的信息didFinishPickingMediaWithInfo
作为参数,但即使选择了多个图像, info 参数也只有一张图像的信息。它保留第一个选择并丢弃第二个选择,并且不会第二次调用该方法。
编辑:
我没有使用第三方图像选择器。
The UIImagePickerController
calls didFinishPickingMediaWithInfo
然后调用didFinishPickingMultipleMediaWithInfo
。它首先调用 didFinishPickingMediaWithInfo,然后我检查
if info["UIImagePickerControllerReferenceURL"] == nil {
// process the selected single image, we don't want to process multiple images
} else {
// do nothing
}
Then didFinishPickingMultipleMediaWithInfo
被调用,这次使用正确的数组,如果数组中的项目数大于 1,我们使用普通方法而不是 swizzled 代码,但如果只有一张图像,我们使用 swizzled 方法处理它,如下所示普通的。
因此,我们无法禁用多个图像选择,但使用 didFinishPickingMultipleMediaWithInfo,我们可以检测何时选择多个图像并更改应用程序的行为方式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)