2

私はスクリーンショットについて多くの質問と回答を見てきました、私はそれを行う方法を知っています、これは私の問題ではありません、これは私のコードです:

- (void)takeScreenShot
{
    //UIGraphicsBeginImageContextWithOptions(CGSizeMake(320, 340), YES, 0.);
    UIGraphicsBeginImageContext(CGSizeMake(320, 480));
    [self.view.window.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
}

320x480の正方形のフレームではなく、丸いスクリーンショットを撮るにはどうすればよいですか?

4

2 に答える 2

3

あなたはこれを試すことができます:

- (UIImage *)takeRoundedScreenShot:(CGPoint)center
{
  float cornerRadius = self.view.window.layer.cornerRadius;
  CGAffineTransform savedTransform = self.view.window.transform;

  UIGraphicsBeginImageContext(CGSizeMake(320, 320));
  self.view.window.layer.cornerRadius = 160;
  self.view.window.clipsToBounds = YES;
  self.view.window.transform = CGAffineTransformMakeTranslation(-(center.x-160), -(center.y-160));
  [self.view.window.layer renderInContext:UIGraphicsGetCurrentContext()];
  UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
  UIGraphicsEndImageContext();

  self.view.window.transform = savedTransform;
  self.view.window.layer.cornerRadius = cornerRadius.

  return viewImage;
}
于 2012-10-22T08:41:34.947 に答える
1

それは不可能だと思いますが、いつでも自分で角を曲がることができますか?

于 2012-10-22T08:31:01.613 に答える