2

UITextView を使用してテキストをレンダリングしています。次のコードを使用して、メイン ビューを大きくレンダリングし、出力をより高い解像度に設定しています (すべてのサブビューも同じ係数でスケーリングします)。

    UIGraphicsBeginImageContext(CGSizeMake(ImageView.frame.size.width*4, ImageView.frame.size.height*4));
[outputView setFrame:CGRectMake(outputView.frame.origin.x, outputView.frame.origin.y, outputView.frame.size.width*4, outputView.frame.size.height*4)];
     [[outputView layer] renderInContext:UIGraphicsGetCurrentContext()];

スケーリングに関してはうまく機能します。唯一の問題は、「画面外」の場合、UITextView 要素が正しくレンダリングされないことです。したがって、*4 スケール ファクターがなくてもすべてが正常にレンダリングされますが、画面外に押し出された UITextView 要素は適切にレンダリングされません (ほとんどが空白です)。

これをオーバーライドして強制的にレンダリングする方法はありますか?

読んでくれてありがとう

4

3 に答える 3

2

これを行う:

  CGAffineTransform newtransform = CGAffineTransformMakeScale(4.0, 4.0);
  self.view.transform = newtransform;
  CGRect newFrame = CGRectApplyAffineTransform(self.view.frame, newtransform);
  //CGSize fittingSize = [yourTextView sizeThatFits:CGSizeZero];
  UIGraphicsBeginImageContext(newFrame.size);
  [self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
  UIImahe *capImage = UIGraphicsGetImageFromCurrentImageContext();
  UIGraphicsEndImageContext();
于 2012-09-10T04:28:38.820 に答える
1

レンダリングのためだけに、ラベルを使用することになりました。そのため、UITextビューは、インターフェイスでの表示と対話に使用されますが、一時的に非表示になり、レンダリング用のラベルに置き換えられます。

于 2012-09-17T03:32:36.827 に答える