使用UIActivityViewController发送UIImage的控制文件名称

我与UIActivityViewController共享一个图像,以及一个URL和一些文本。 一切工作很好,除了图像文件名称总是'图像-1'没有扩展名。 在某些情况下,这会导致一个很大的问题,比如在邮件应用程序中,根本不会打开一个图像。

图像由应用程序生成,并作为UIImage存在。

有没有一种方法来控制文件名称并将正确的扩展名添加到图像?

如果它的应用程序生成的图像( UIImage引用),那么你可以使用下面的代码:

 [mailComposer addAttachmentData: UIImagePNGRepresentation(viewImage) mimeType:@"" fileName:@"myImage.png"]; 

我为我的项目使用了相同的代码,可以使用UIImagePNGRepresentation()方法创build自己的PNG格式图像。

如果您需要JPEG图像,则使用UIImageJPEGRepresentation()方法。 然后使用.jpg扩展名更改上述方法中的文件名。

有关这两种方法的更多详细信息,请参阅UIKit类参考

我知道控制UIImage的文件名或编码types的唯一方法是将其保存到设备上的文件,然后将文件的URL提供给UIActivityViewController。 看看这个答案你可以用来完成这个代码。 这种方法有一些明显的缺陷,但对于大多数应用程序来说可能是足够好的。