2014-09-23 83 views
4

看来我只在iOS 8有这个错误。我试图分享一个图像和UIActivityViewController一些文本给我自己进行测试。有时候,共享图像会导致问题出现在应该是共享图像的位置,并且点击该图像不会在iMessage线程中执行任何操作,因为它不是空白就是已损坏。如果我回到我的应用程序并尝试再次分享,有时图像会完全共享,而不是空白。我使用与UIActivityViewController共享图像是空白/损坏在iOS 8

代码(完全在iOS的7):

UIActivityViewController *activityVC = [[UIActivityViewController alloc]initWithActivityItems:@[[NSString stringWithFormat:@"Sent from http://appstore.com/appname"],[UIImage imageNamed:@"SomeImage"]]applicationActivities:nil]; 

activityVC.excludedActivityTypes = @[UIActivityTypeAssignToContact, UIActivityTypePrint, UIActivityTypeCopyToPasteboard, UIActivityTypeSaveToCameraRoll, UIActivityTypeAddToReadingList, UIActivityTypePostToVimeo, UIActivityTypeAirDrop]; 

[self presentViewController:activityVC animated:YES completion:NULL]; 

我想弄清楚这是为什么有时会发生,以及如何解决它。我会很感激任何帮助。附加一个问题/错误的截图:

enter image description here

+0

在应用程序的另一个地方[UIImage imageNamed:@“SomeImage”]的作品? – 2014-09-23 19:02:00

+0

当它想要的时候很好用。在iOS 7中100%。让我觉得这是一个苹果的错误与他们的远程视图控制器。通过'UIActivityViewController'通过电子邮件分享也会在iOS 8之后超时。 – klcjr89 2014-09-23 19:06:56

+0

你们每个人都找到解决方案吗?除了我们正在使用邮件共享之外,我们正在看到相同的间歇性损坏图像。 – CargoMeister 2014-11-19 22:19:10

回答

1

下面是视频文件共享解决方法。也许你可以尝试相同的图像。

我有视频数据,我第一次保存到文件目录中的文件,然后我附加该文件。

//write to a file 
[videoData writeToFile:[NSHomeDirectory() stringByAppendingPathComponent:@"Documents/image.mov"] atomically:YES]; 

(IBAction)ShareVideoWihFacebook:(id)sender { 
//get the file url NSString* path =[NSHomeDirectory()stringByAppendingPathComponent:@"Documents/image.mov"]; 

NSURL *videoURL = [NSURL fileURLWithPath:path]; 

UIActivityViewController * activityVC = [[UIActivityViewController alloc] initWithActivityItems:@[videoURL,@"Created by ..."] applicationActivities:NULL]; 


[activityVC setExcludedActivityTypes:@[ UIActivityTypeMail,UIActivityTypeAssignToContact, UIActivityTypeCopyToPasteboard, UIActivityTypePrint,  UIActivityTypePostToWeibo,UIActivityTypeMessage,UIActivityTypeAirDrop,UIActivityTypeSaveToCameraRoll]]; 

[activityVC setValue:@"My Video" forKey:@"subject"]; 

[activityVC setCompletionHandler:^(NSString *activityType, BOOL completed) { 
//NSLog(@"completed dialog - activity: %@ - finished flag: %d", activityType, completed); 
}]; 

[self presentViewController:activityVC animated:TRUE completion:nil]; 
}