我怎样才能以编程方式将一些UIImage放在一起,以便拥有一个大的UIImage?

这是我的代码:

- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView { // at this point the webView scrolled to the next section // I save the offset to make the code a little easier to read CGFloat offset = _webPage.scrollView.contentOffset.y; UIGraphicsBeginImageContextWithOptions(_webPage.bounds.size, NO, 0); [_webPage.layer renderInContext:UIGraphicsGetCurrentContext()]; viewImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil); // if we are not done yet, scroll to next section if (offset < _webPage.scrollView.contentSize.height) { [_webPage.scrollView scrollRectToVisible:CGRectMake(0, _webPage.frame.size.height+offset, _webPage.frame.size.width, _webPage.frame.size.height) animated:YES]; } } 

其中我通过滚动web view保存未定义数量的屏幕截图(UIImages) 。 这工作,我在我的照片库中的网页的所有部分。 但我不想要零件,我想要一个长长的UIImage。 那么我怎么把(一个接一个地)我的UIImages放在一起呢?

你可以写一个UIImage类来做到这一点

UIImage+Combine.h

 #import <UIKit/UIKit.h> @interface UIImage (Combine) + (UIImage*)imageByCombiningImage:(UIImage*)firstImage withImage:(UIImage*)secondImage; @end 

UIImage+Combine.m

 #import "UIImage+Combine.h" @implementation UIImage (Combine) + (UIImage*)imageByCombiningImage:(UIImage*)firstImage withImage:(UIImage*)secondImage { UIImage *image = nil; CGSize newImageSize = CGSizeMake(MAX(firstImage.size.width, secondImage.size.width), firstImage.size.height + secondImage.size.height); if (UIGraphicsBeginImageContextWithOptions != NULL) { UIGraphicsBeginImageContextWithOptions(newImageSize, NO, [[UIScreen mainScreen] scale]); } else { UIGraphicsBeginImageContext(newImageSize); } [firstImage drawAtPoint:CGPointMake(roundf((newImageSize.width-firstImage.size.width)/2), 0)]; [secondImage drawAtPoint:CGPointMake(roundf(((newImageSize.width-secondImage.size.width)/2) ), roundf((newImageSize.height-secondImage.size.height)))]; image = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return image; } 

然后你可以用你的代码调用函数:

UIImage *img = [UIImage imageByCombiningImage:image1 withImage:image2];

这将绘制一幅新的图像,其中两幅图像的最大宽度和两幅图像的高度相结合。 image1将在最上面的位置,下面的image2。