如何从imageView共享图像。这是我的imageView代码:
UIImage *myImage = [UIImage imageNamed:[NSString stringWithFormat:
@"image%d.jpg", i]];
UIImageView *myImageView = [[UIImageView alloc] initWithImage:myImage];
[myImageView setFrame:CGRectMake(xOrigin, 0,
self.view.frame.size.width,
self.view.frame.size.height)];
_postImage.image = myImage;
}
- (IBAction)shareButtonPressed:(id)sender {
NSArray *activityItems;
if (_postImage.image != nil) {
activityItems = @[_postImage.image];
}
UIActivityViewController *activityVC = [[UIActivityViewController alloc]
initWithActivityItems:activityItems
applicationActivities:nil];
[self presentViewController:activityVC animated:YES completion:nil];
}
我收到错误 - 没有可用的共享操作。提前谢谢。
答案 0 :(得分:0)
您可能忘记初始化_postImage
。尝试替换:
_postImage.image = myImage;
使用:
_postImage = [[UIImageView alloc] initWithImage:myImage];
答案 1 :(得分:0)
要在activityViewController上获取图像,您需要使用要显示的图像创建自定义活动。以下是使用您的图片创建和显示自定义活动的步骤。
1.创建一个子类化UIActivity的新文件,即" CustomActivity"。然后在CustomActivity.m文件中,您需要记下以下方法。
- (NSString *)activityType {
return @"yourappname.Review.App"; //type
}
- (NSString *)activityTitle {
return @"Review App"; //title for activity
}
- (UIImage *)activityImage {
return [UIImage imageNamed:@"Icon.png"]; //image
}
- (BOOL)canPerformWithActivityItems:(NSArray *)activityItems {
NSLog(@"%s", __FUNCTION__);
return YES;
}
- (void)prepareWithActivityItems:(NSArray *)activityItems {
NSLog(@"%s",__FUNCTION__);
}
- (UIViewController *)activityViewController {
NSLog(@"%s",__FUNCTION__);
return nil;
}
- (void)performActivity {
//What your cust activity woudl perform when user tap onto it.
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.apple.com/"]];
[self activityDidFinish:YES];
}
然后在mainVC中,您可以导入此类并添加以下行以使用此自定义活动。
NSString *textItem = @"provide your string";
UIImage *imageToShare = [UIImage imageNamed:@"Icon.png"]; //Provide your activity image
NSArray *items = [NSArray arrayWithObjects:textItem,imageToShare,nil];
custAct = [[CustomActivity alloc]init];
UIActivityViewController *controller = [[UIActivityViewController alloc] initWithActivityItems:items applicationActivities:@[custAct]];
[self presentViewController:controller animated:YES completion:nil];
现在,您将能够看到包含您要执行的活动的图像。 如果我的理解是错误的,请纠正我。