0

私の質問は簡単です。長方形(0.0、0.0、300、45など)があり、この長方形の中央に「テキスト」などの文字列を描画する必要があります。「テキスト」の高さは、長方形の高さに合わせる必要があります。

そして難しい部分は、長方形を拡大縮小できることです。「テキスト」のサイズは、長方形のサイズに合わせて拡大縮小する必要があります。

以下のコーディングで長方形の中央に文字列を描くことができますが、長方形のサイズに合わせて変更された「テキスト」のフォントサイズを管理できないのが難点です。

[@ "Text" drawInRect:textRect withFont:font];

ラベルではなく長方形でテキストを描きたいのですが、ユーザーは指で長方形のサイズを拡大縮小できます。最後に、画像に拡大縮小してテキストを描画します。ラベルはこれらの機能用ではないと思います。

誰かが良い解決策を持っていますか?

ありがとう!

アップデート:

実際、iPhoneの画面に表示するだけでなく、大きな画像にテキストを拡大して描く必要があります。次のコードをご覧ください。

UIImageVIew *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320, 320)];

imageView.image = [UIImage imageNamed:@"LargeSizeImage"]; // Image size = 2048 *2048

[self.view addSubview:imageView];

UILabel *textLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 300, 45)];

textLabel.text = @"Text";

[self.view addSubviews:textLabel];

// Draw text on image

UIGraphicsBeginImageCurrentContext(imageView.image.size);(2048 * 2048)

[imageView.image drawInRect:CGRectMake(0, 0, 2048, 2048)];

CGRect scaleRect = CGRectMake(10 * scaleFactor, 10 *scaleFactor, textLabel.bounds.size.width * scaleFactor, text.Label.bounds.size.height *scaleFactor);

UIFont *font = [UIFont systemOfSize:**?**];

[textLabel.text drawInRect:scaleRect withFont:font];

............................。

私の質問は、フォントサイズをどのように決定するのですか?

4

1 に答える 1

2
UILabel *text = [[UILabel alloc] initWithFrame:CGRectMake(0.0, 0.0, 300, 45)];
text.backgroundColor = [UIColor clearColor];
text.font = [UIFont systemFontOfSize:45];
text.textAlignment =  UITextAlignmentCenter;
text.text = @"TEXT";
[self.view addSubview:text];

おそらくあなたが興味を持っている効果が得られるでしょう。

編集

実際には、正方形のサイズを変更すると、テキストのサイズを動的に変更できます。サイズ変更を行うメソッドでは、UILabel がサイズ変更をトリガーするためにこれらのコード行を追加するだけです。

text.frame = CGRectMake(0.0, 0.0, rect.frame.size.width, rect.frame.size.height);
text.font = [UIFont systemFontOfSize:rect.frame.size.height];

rect は、サイズ変更する四角形を表すために使用しているものです。

于 2012-07-01T14:26:47.233 に答える