iOS-按大小拍摄UIScrollView可见区域的屏幕截图
我发现了这个,答案是完美的。但是如果我想自己定尺寸呢?如何为此更改iOS-按大小拍摄UIScrollView可见区域的屏幕截图,ios,objective-c,uiscrollview,Ios,Objective C,Uiscrollview,我发现了这个,答案是完美的。但是如果我想自己定尺寸呢?如何为此更改滚动视图.contentOffset 例如,我想这样称呼它: #define multiplier 3.0f CGSize size = CGSizeMake(scrollView.frame.size.width*multiplier, scrollView.frame.size.height*multiplier); UIImage *backgroungImage = [self renderScrollViewToIm
滚动视图.contentOffset
例如,我想这样称呼它:
#define multiplier 3.0f
CGSize size = CGSizeMake(scrollView.frame.size.width*multiplier, scrollView.frame.size.height*multiplier);
UIImage *backgroungImage = [self renderScrollViewToImageWith:scrollView size:size];
-(UIImage *)renderScrollViewToImageWith:(UIScrollView *)_scrollView size:(CGSize)size
{
UIScrollView *contentScrollView = _scrollView;
UIGraphicsBeginImageContextWithOptions(size, NO, [UIScreen mainScreen].scale);
//what do I do here???
CGPoint offset = contentScrollView.contentOffset;
CGContextTranslateCTM(UIGraphicsGetCurrentContext(), -offset.x, -offset.y); <-- what do I do here?
[contentScrollView drawViewHierarchyInRect:CGRectMake(0, 0, size.width, size.height) afterScreenUpdates:YES];
UIImage *visibleScrollViewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return visibleScrollViewImage;
}
#定义乘数3.0f
CGSize size=CGSizeMake(scrollView.frame.size.width*乘数,scrollView.frame.size.height*乘数);
UIImage*BackgroundingImage=[自渲染CrollViewToImageWith:scrollView大小:大小];
-(UIImage*)renderScrollViewToImageWith:(UIScrollView*)\u scrollView大小:(CGSize)大小
{
UIScrollView*contentScrollView=\u scrollView;
UIGraphicsBeginImageContextWithOptions(大小,否,[UIScreen Main Screen].scale);
//我在这里做什么???
CGPoint offset=contentScrollView.contentOffset;
CgContextTranslateCm(UIGraphicsGetCurrentContext(),-offset.x,-offset.y);试试这个
CGRect croppingRect = viewToTakeScreenShot.bounds;
UIGraphicsBeginImageContextWithOptions(croppingRect.size, NO, [UIScreen mainScreen].scale);
CGContextRef context = UIGraphicsGetCurrentContext();
if (context == NULL) return nil;
CGContextTranslateCTM(context, -croppingRect.origin.x, -croppingRect.origin.y);
[viewToTakeScreenShot layoutIfNeeded];
[viewToTakeScreenShot.layer renderInContext:context];
UIImage *screenshotImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
试试这个,它会对你有帮助的