【问题标题】:how to load image from url and share that image?如何从 url 加载图像并共享该图像?
【发布时间】:2017-08-18 06:59:27
【问题描述】:

我想使用UIActivityViewController 分享图片。 这是我的代码。

- (IBAction)shareBUttonClick:(id)sender
{
   for(int i=0; i<[self.imagesDataArray count];i++)
  {
     [imageView sd_setImageWithURL:[NSURL URLWithString:[self.imagesDataArray objectAtIndex:i]] placeholderImage:[UIImage imageNamed:@"placeholder.png"]];  
     NSArray *postItems=@[imageView];
    UIActivityViewController *controller = [[UIActivityViewController alloc] initWithActivityItems:postItems applicationActivities:nil];

 //if iPhone
 if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
    {
    [self presentViewController:controller animated:YES completion:nil];
    }
//if iPad
else 
    {
    // Change Rect to position Popover
    UIPopoverController *popup = [[UIPopoverController alloc] initWithContentViewController:controller];
    [popup presentPopoverFromRect:CGRectMake(self.view.frame.size.width/2, self.view.frame.size.height/4, 0, 0)inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
    }
 }
}

但是,它给了我null(UIActivityViewController open in real device but sharing not there)

请帮帮我。

【问题讨论】:

  • 你检查图片是否添加
  • 你在分配你的imageview的内存吗
  • 我是 ios 的新手,所以你告诉我应该怎么做?如果我是静态添加的图像,那么它的工作文件,但我的图像来自 url。
  • 试试这个NSArray *postItems=@[imageView]; 在这个地方使用NSArray *postItems=@[imageView.image];
  • 警告:尝试在 上显示 已经出现(空)此错误

标签: ios objective-c uiactivityviewcontroller


【解决方案1】:

你可以使用 sdwebimage 下载器 async ,然后调用上传函数:

 [[SDWebImageDownloader sharedDownloader] downloadImageWithURL:[NSURL URLWithString:imageUrl] options:SDWebImageDownloaderUseNSURLCache progress:nil completed:^(UIImage *image, NSData *data, NSError *error, BOOL finished) {

                        if (image && finished) {
    // now upload   
                              [self sendImageToShare:(UIImage *)image];
                        }
                    }]; 


    /*********************/


    - (void)sendImageToShare:(UIImage *)yourImage {
        if (yourImage) {
        NSMutableArray *activityItems= [NSMutableArray arrayWithObjects:yourImage, nil];
        UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];

        [self presentViewController:activityViewController animated:YES completion:nil];
    }

     }

【讨论】:

    【解决方案2】:

    首先你需要准备好所有的 URL 并预取图片

        NSMutableArray * urls = [NSMutableArray   arrayWithCapacity:things.count];
        for(int i=0; i<[self.imagesDataArray count];i++) {
            [urls addObject:[NSURL URLWithString:   self.imagesDataArray[i]]];
        }
        [SDWebImagePrefetcher sharedImagePrefetcher]
    

    通过回调,可以将下载的图片放入共享控制器

    【讨论】:

    • 代码可以运行,但我需要,直接将图像放入共享控制器。
    猜你喜欢
    • 2023-04-03
    • 2021-08-22
    • 2019-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-12
    相关资源
    最近更新 更多