操作系统似乎选择是否使用PNG或JPEG,原因不明.在我的情况下,我想发送JPEG(通过邮件,推特等),但我倾向于得到一个非常大的PNG.
如果我将UIActivityItemProvider子类化并返回指向我自己创建的文件的NSURL,则使用UIImageJPEGRepresentation将JPEG写入磁盘,我当然可以获得JPEG.但是,使用NSURL会导致其他问题(其中一个问题是无法将iMessage用作目标).有没有办法使用UIImage,但是指定你更喜欢某种文件格式?(我很确定答案是否定的,但要检查.)
objective-c uiimage ios6 uiactivity uiactivityviewcontroller
所以我使用UIActivityViewController让用户共享或保存他们用我的应用创建的图像.我包含一个UIImage作为共享项目之一,它一切正常.
除了:可以使用一些透明区域创建此图像.在我看来,内置的UIActivities都创建了UIImage的JPEG表示,从而失去了透明度.
有没有办法强制它使用PNG表示,以免丢失alpha通道?
如果没有子类化UIActivity,是否可以使用UIActivityViewController(UIActivityTypeMessage)通过Mail应用程序共享html消息?
当我将HTML作为NSString传递时,正文在消息正文中显示了html标签(例如),这不是我想要的。
是否有我在创建 Apple 的 12 天应用程序中看到的“复制链接”按钮时缺少的服务或参数?
我可以通过允许出现“复制”按钮
UIActivityTypeCopyToPasteboard
Run Code Online (Sandbox Code Playgroud)
在我的 UIActivityViewController 中,并传递一个 URL
NSURL *activityURL = [NSURL URLWithString:@"http://www.mylink.com/"];
Run Code Online (Sandbox Code Playgroud)
功能正常,但按钮标题是“复制”,不如“复制链接”清晰。我想知道强制此标题是否是我错过的服务选项,或者需要定义自定义活动类型。据我所知,activityTitle 仅在您对服务方法进行子类化时才可用。
感谢您的任何见解。

我正在通过UIActivityViewController分享录音。通过电子邮件或iMessage共享音频文件时,它会显示音频文件的基础名称,而无需任何明显的更改方式。
NSArray *activityItems = [NSArray arrayWithObjects:self.audioPlayer.url, nil];
UIActivityViewController *avc = [[UIActivityViewController alloc]
initWithActivityItems:activityItems
applicationActivities:nil];
[self presentViewController:avc
animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)
如果我不使用UIActivityViewController而仅直接使用MFMessageComposeViewController,那么我可以使用
[composer addAttachmentURL:self.audioPlayer.url withAlternateFilename:@"Piano Song.m4a"];
Run Code Online (Sandbox Code Playgroud)
UIActivityViewController是否可以使用备用文件名?
iphone ios mfmessagecomposeviewcontroller uiactivity uiactivityviewcontroller
uiactivity ×5
ios ×4
ios6 ×2
uiimage ×2
ios7 ×1
iphone ×1
mfmessagecomposeviewcontroller ×1
objective-c ×1
png ×1
uikit ×1