我正在使用UIActivityViewController,但如果我在Facebook,电子邮件等上分享它,它会旋转图像

时间:2015-10-22 10:14:36

标签: ios objective-c xcode uiactivityviewcontroller

我正在使用UIActivityViewController分享图片。 因为它在Facebook或电子邮件上共享图像。然后图像旋转。为什么会这样?

我的守则如下: ShareArr包含图像对象

ActivityViewCustomActivity *aVCA = [[ActivityViewCustomActivity alloc]init];
UIActivityViewController *controller = [[UIActivityViewController alloc] initWithActivityItems:shareArr applicationActivities:[NSArray arrayWithObject:aVCA]];
[controller setCompletionHandler:^(NSString *activityType, BOOL completed) { }];
[self presentViewController:controller animated:YES completion:nil];

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我知道这是在前一段时间被问到的,但我遇到了同样的问题,这是我的解决方案。

我找到了这个网站bug in UIActivityViewController

以下是我发现该网站有用的段落

  

注意:当系统将UIImage转换为MFMailComposeViewController(和其他UIActivities)的NSData时,它似乎不保留方向信息。这就是为什么当传入NSData时,它会正确旋转,因为系统不必转换它。

所以这是我在我的案例中使用的代码的一部分(拍照),

 NSData *imageData = [AVCaptureStillImageOutput jpegStillImageNSDataRepresentation:imageDataSampleBuffer];

     UIImage *image = [[UIImage alloc] initWithData:imageData];

然后来自UIActivityViewController的facebook函数正在使用UIImage并将其转换回NSData。所以我做的是使用NSData * imageData并将其直接放入我的activityViewController。

希望这有助于某人。