0

iPhoneインターフェイスの高解像度バージョンを出力しようとしています。ラベルimagesViewsとtextViewsを使用してコンテンツを作成しています。私はrenderInContextを使用してメインビューの高解像度画像を作成し、それに合わせてコンテンツをスケーリングしています。ラベルとimageViewは完全に機能しているように見えますが、textViewは、適切に配置されて拡大縮小されている場合、一部のテキストを非表示にしています。

基本的なコードは次のとおりです。

UIGraphicsBeginImageContext(CGSizeMake(1536, 2048));
myExportView.frame = CGRectMake(0, 0, 1536, 2048);
[myLabel setFrame:CGRectMake(myLabel.frame.origin.x*4.4232, myLabel.frame.origin.y*4.4232, myLabel.frame.size.width*4.4232, myLabel.frame.size.height*4.4232)];
[myLabel setFont:[UIFont fontWithName:@"Arial" size:myLabel.font.pointSize*4.4232]];
[myTextView setFrame:CGRectMake(myTextView.frame.origin.x*4.4232, myTextView.frame.origin.y*4.4232, myTextView.frame.size.width*4.4232, myTextView.frame.size.height*4.4232)];
[myTextView setFont:[UIFont fontWithName:@"Arial" size:myTextView.font.pointSize*4.4232]];
[[myExportView layer] renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageWriteToSavedPhotosAlbum(image,nil,nil,nil);

これは、インターフェイスと出力のビジュアルで、左側に640×960インターフェイス、右側に1536×2048の出力画像があります(意図したとおり)。ラベルとtextViewは適切に拡大縮小されていますが、textViewのテキストは適切に拡大縮小されています。なくなっている。

ここに画像の説明を入力してください

ご覧になりたい場合は、プロジェクト自体をご覧ください:owolf.net/uploads/StackOverflow/exportTest.zip

ここに画像の説明を入力してください ここでの更新は、左側のtextViewで、すべての方法で4.5に拡大されています。ただし、xは* 2のみで、右側のxは3に拡大されています。テキストがクリップされ始めていることに注意してください。

何か案は?感謝します

4

2 に答える 2

0

私はこれにラベルを使用することになりました。解決策については、このスレッドを参照してください。

上揃えの UILabel、テキストをラベル ビューの上にくっつける -ios

于 2012-08-13T04:26:24.800 に答える
0

私はあなたのコードでいくつかの実験をしました:

- (IBAction)export:(id)sender {

    UIGraphicsBeginImageContext(CGSizeMake(1536, 2048));

    myExportView.frame = CGRectMake(0, 0, 1536, 2048);

   [myLabel setFrame:CGRectMake(myLabel.frame.origin.x*4.4232, myLabel.frame.origin.y*4.4232, myLabel.frame.size.width*4.4232, myLabel.frame.size.height*4.4232)];


   [myLabel setFont:[UIFont fontWithName:@"Arial" size:myLabel.font.pointSize*4.4232]];

   [myTextView setFrame:CGRectMake(myTextView.frame.origin.x*4.4232, myTextView.frame.origin.y*4.55, myTextView.frame.size.width*4.4232, myTextView.frame.size.height*4.4232)];
    [myTextView setFont:[UIFont fontWithName:@"Arial" size:myTextView.font.pointSize*4.4232]];

   [[myExportView layer] renderInContext:UIGraphicsGetCurrentContext()];
   UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
   UIGraphicsEndImageContext();
   UIImageWriteToSavedPhotosAlbum(image,nil,nil,nil);

       // adding for experiment
   UIScrollView *scroll = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
   scroll.contentSize = CGSizeMake(1536, 2048);
   [self.view addSubview:scroll];
   [scroll addSubview:myExportView];

   [scroll addSubview:myTextView];
   [scroll addSubview:myLabel];

}

(myTextView.frame.origin.y*4.55 に変更しました)

同じ係数を使用し、結果のテキストビューで必要以上にオフセットされているために発生するため、テキストが隠れているように見えます。uilabel で非表示にします。係数を試してみてください。この場合、サイズの増加は線形ではありません。幸運を!

于 2012-08-08T07:04:30.320 に答える