2

単一の大きな文字を表示する UILabel を作成しました。clipsToBounds = NO; でも。私はまだクリッピングを取得します。

リンクを参照してください: http://img341.imageshack.us/img341/5310/screenshot20100814at243.png

次のコードを使用しました。

 CGSize fBounds = [myLabel.text sizeWithFont:cFont];

フォントの外接する四角形を取得します。そして、ラベルは次のように描画されます:

myLabel = [[UILabel alloc] initWithFrame:CGRectMake(20, 20, 280, 300)];
 myLabel.clipsToBounds = NO;
 myLabel.numberOfLines = 1;
 myLabel.textAlignment = UITextAlignmentCenter;
 myLabel.adjustsFontSizeToFitWidth = YES;
 myLabel.minimumFontSize = 10;
 myLabel.text = @"A";
 myLabel.font = [UIFont fontWithName:@"CourierNewPSMT" size:300];
 myLabel.textColor = [UIColor blackColor];
 myLabel.backgroundColor = [UIColor colorWithRed:1 green:.5 blue:0 alpha:.5];

下の画像では、sizeWithFont から返されたサイズが、半透明の青い四角形のオーバーレイによってレンダリングされます。ご覧のとおり、イタリック フォント (この場合は Verdana-BoldItalic) を使用すると、文字は sizeWithFont が返す値を超えて拡張されます。さらに、UILabel のフレーム (オレンジ色) も文字をクリップします。考え?たぶん、テキスト描画ルーチンをオーバーライドできます。また、これがここと同じ問題かどうかはわかりません:

UIButton.titleLabel クリッピング テキストの問題

4

2 に答える 2

-3

これはリンゴの問題のようです。CoreTextでカスタム描画を行うことになりました。

于 2011-03-11T15:28:22.310 に答える