CGContextShowTextAtPoint() を使用してテキストを手動で描画しています。このテキストは画像の上に配置されており、読みやすいようにするために、このテキストを最初に大きな白い線幅で描画し、次に小さな黒い線幅で描画します。 . 画像は静的ではないため、テキストの代わりに静的画像を使用することはできません。したがって、実際のテキスト オブジェクトを描画する必要があります。ただし、たとえば、テキストの長さが特定の値よりも大きい場合は、このテキストのフォント サイズを変更する必要もあります。UILabel にはテキストを自動縮小するオプションがありますが、各シンボルの周りに境界線を引く方法がわかりません。CGContextShowTextAtPoint() によって手動で描画されたテキストを自動縮小する方法、または少なくとも特定のフォント設定で描画されたテキストのポイント単位で長さを測定する方法はありますか?
1332 次
1 に答える
4
コア グラフィックスを使用して描画し、最小フォント サイズを設定して、テキストが収まるようにサイズ変更できます。
[YOURSTRING drawAtPoint:CGPointMake(1, 1) forWidth:250 withFont:[UIFont fontWithName:@"Helvetica" size:14] minFontSize:10 actualFontSize:nil lineBreakMode:UILineBreakModeTailTruncation baselineAdjustment:UIBaselineAdjustmentNone];
これを使用して、テキスト文字列のサイズを取得することもできます。
CGSize expectedLabelSize = [YOURSTRING sizeWithFont:[UIFont fontWithName:@"Helvetica" size:14] constrainedToSize:CGSizeMake(MAXFLOAT, MAXFLOAT)];
于 2012-04-18T12:12:07.070 に答える