前幾天寫項(xiàng)目的時候, 后臺給返回的數(shù)據(jù)是 html 類型的一篇文章, 我將其通過 [webView loadHTMLString:htmlString baseURL:nil]的方式展示了出來,下面是效果圖:
但是當(dāng)我用 UIActivityViewController (如果不知道蘋果這個原生分享 API 的話, 可以點(diǎn)擊這里)分享這篇文章時, 出現(xiàn)了問題, 怎么分享?
ActivityItems只可以是 image, string, 和 url, 一個 webView 我怎么分享呢? 席八...
嘿嘿后來想到一個辦法, 就是把 webView 截圖, 然后用 UIActivityViewController 分享image不就 OK 了.哈哈... 上代碼:
- (UIImage *)imageRepresentation{
CGSize boundsSize = self.view.bounds.size;
CGFloat boundsWidth = self.view.bounds.size.width;
CGFloat boundsHeight = self.view.bounds.size.height;
CGPoint offset = self.webView.scrollView.contentOffset;
CGFloat contentHeight = self.webView.scrollView.contentSize.height;
// 可變數(shù)組
NSMutableArray *images = [NSMutableArray array];
while (contentHeight > 0) {
// 截取整個 self.view
UIGraphicsBeginImageContext(boundsSize);
[self.webView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[images addObject:image];
CGFloat offsetY = self.webView.scrollView.contentOffset.y;
[self.webView.scrollView setContentOffset:CGPointMake(0, offsetY + boundsHeight)];
contentHeight -= boundsHeight;
}
[self.webView.scrollView setContentOffset:offset];
// 給 webView 截圖UIGraphicsBeginImageContext(self.webView.frame.size);
[images enumerateObjectsUsingBlock:^(UIImage *image, NSUInteger idx, BOOL *stop) {
[image drawInRect:CGRectMake(0, boundsHeight * idx, boundsWidth, boundsHeight)];
}];
UIImage *fullImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return fullImage;
}
通過調(diào)用上面的方法得到了如下截圖:
然后分享這張 image 就 OK 了.
如果你還有其他好的方法還望評論告知. 謝過了...