0

現在表示されている画面 (UITable) の画面グラブを取得するために、UIGraphicsBeginImageContextWithOptions を使用しています。

これが私のコードです:

UIGraphicsBeginImageContextWithOptions(self.view.frame.size, self.view.opaque, 0.0);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

次に、画像オブジェクトを画面の画面グラブとして使用しています。

私の問題は、現在表示されていないデータの余分な 100 ピクセルを画面グラブに含めることです (下にスクロールすると表示されます)。

どうやってやるの?

4

1 に答える 1

0
- (IBAction) renderScrollViewToImage
 {
   UIImage* image = nil;

   UIGraphicsBeginImageContext(_scrollView.contentSize);
  {
    CGPoint savedContentOffset = _scrollView.contentOffset;
    CGRect savedFrame = _scrollView.frame;

    _scrollView.contentOffset = CGPointZero;
    _scrollView.frame = CGRectMake(0, 0, _scrollView.contentSize.width, _scrollView.contentSize.height);

    [_scrollView.layer renderInContext: UIGraphicsGetCurrentContext()];     
    image = UIGraphicsGetImageFromCurrentImageContext();

    _scrollView.contentOffset = savedContentOffset;
    _scrollView.frame = savedFrame;
   }
  UIGraphicsEndImageContext();

if (image != nil) {
    [UIImagePNGRepresentation(image) writeToFile: @"/tmp/test.png" atomically: YES];
    system("open /tmp/test.png");
  }
}

参考リンク

于 2014-02-25T14:27:22.077 に答える