相关疑难解决方法(0)

获取UIScrollView的屏幕截图,包括屏幕外部分

我有一个UIScrollView实现takeScreenshot方法的decedent,如下所示:

-(void)takeScreenshot {  
  CGRect contextRect  = CGRectMake(0, 0, 768, 1004);
  UIGraphicsBeginImageContext(contextRect.size);    
  [self.layer renderInContext:UIGraphicsGetCurrentContext()];
  UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
  UIGraphicsEndImageContext();

  // do something with the viewImage here.
}
Run Code Online (Sandbox Code Playgroud)

这基本上移动到滚动视图的顶部,并截取可见区域的屏幕截图.当iPad面向人像时,它可以正常工作,但当它处于横向时,图像的底部会被切断(因为可见区域的高度仅为748,而不是1004).

是否有可能获得快照UIScrollView,包括不在屏幕上的区域?或者我需要向下滚动视图,拍摄第二张照片并将它们拼接在一起?

iphone core-graphics ipad ios

55
推荐指数
6
解决办法
3万
查看次数

创建UIImageView时无效的上下文

我尝试创建UIImageView时出错.看看这段代码:

UIImage* backgroundPanel = [[UIImage imageNamed:@"loginPanelBackground.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(90, 0, 149, 416)];

self.connexionBackgroundImgView = [[UIImageView alloc] initWithImage:backgroundPanel];
self.connexionBackgroundImgView.frame = CGRectMake(0, 0, 416, 390); // THIS LINE PROVOC THE INVALID CONTEXT
[self.connexionView insertSubview:self.connexionBackgroundImgView aboveSubview:self.connexionToCreationCompteView];
Run Code Online (Sandbox Code Playgroud)

它会在日志中抛出此错误:

<Error>: CGContextSaveGState: invalid context 0x0
<Error>: CGContextSetBlendMode: invalid context 0x0
<Error>: CGContextSetAlpha: invalid context 0x0
<Error>: CGContextTranslateCTM: invalid context 0x0
<Error>: CGContextScaleCTM: invalid context 0x0
<Error>: CGContextGetCTM: invalid context 0x0
<Error>: CGContextSaveGState: invalid context 0x0
<Error>: CGContextClipToRect: invalid context 0x0
<Error>: CGContextDrawTiledImage: invalid context 0x0
<Error>: CGContextRestoreGState: invalid …
Run Code Online (Sandbox Code Playgroud)

uiimageview uiimage cgcontext ios

11
推荐指数
2
解决办法
1万
查看次数

标签 统计

ios ×2

cgcontext ×1

core-graphics ×1

ipad ×1

iphone ×1

uiimage ×1

uiimageview ×1