UILabelのテキストのピクセル幅
2023-09-05 07:24:08
質問
UILabelをストライクで描画する必要があります。そこで、UILabelをサブクラス化し、以下のように実装してみました。
@implementation UIStrikedLabel
- (void)drawTextInRect:(CGRect)rect{
[super drawTextInRect:rect];
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextFillRect(context,CGRectMake(0,rect.size.height/2,rect.size.width,1));
}
@end
UILabelはラベル全体と同じ長さの線を描きますが、テキストはもっと短くすることができます。 線が適切に引けるように、テキストの長さをピクセル単位で決定する方法はありますか?
また、もし知っていれば、他の解決策にも興味があります :)
最高です。 エリック
どのように解決するのですか?
NSStringには sizeWithAttributesを使用しています。 メソッドがあり、これを使用することができます。これはCGSize構造体を返すので、以下のようなことをして、ラベルの中のテキストの幅を求めることができます。
iOS 7以降
CGSize textSize = [[label text] sizeWithAttributes:@{NSFontAttributeName:[label font]}];
CGFloat strikeWidth = textSize.width;
iOS <7
iOS7以前は、iOS7に対応するために sizeWithFont を使用していました。 メソッドを使用していました。
CGSize textSize = [[label text] sizeWithFont:[label font]];
CGFloat strikeWidth = textSize.width;
UILabelにはfontプロパティがあり、これを利用することで上記のようにラベルのフォントの詳細を動的に取得することができます。
これが役に立つといいのですが :)
関連
-
[解決済み] UILabel 内のテキストを縦に上部に揃える
-
[解決済み] アトミック属性と非アトミック属性の違いは何ですか?
-
[解決済み] キーボードがあるときに、UITextFieldを編集開始時に上に移動させるには?
-
[解決済み] UILabelで複数行のテキストを表示する
-
[解決済み】テキストに応じてUILabelの高さを調整する。
-
[解決済み] UIScrollViewでスクロールの方向を見つける?
-
[解決済み] エラー : サービスは無効です
-
[解決済み] iPhoneのSafariで<body>に適用したoverflow:hiddenは機能するのか?
-
[解決済み] iPhoneでテキスト入力のポップアップダイアログボックスを表示する簡単な方法は?
-
[解決済み] MKMapViewのズームレベル設定
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] UILongPressGestureRecognizerが押し下げ時に2回呼び出される
-
[解決済み] TabBarのタブビューにプログラムで切り替える?
-
[解決済み] エラー : サービスは無効です
-
[解決済み] テキストの長さに基づいてUILabelの幅を計算する方法は?
-
[解決済み] drawRectを使うか使わないか(drawRect/Core Graphicsとsubview/imagesをいつ使うか、なぜ使うか)?
-
[解決済み] cocoaアプリケーションのinfo plistにある「bundle display name」と「bundle name」の違いは何ですか?
-
[解決済み] ナビゲーションコントローラスタック、サブビュー、モーダルコントローラを使用せずに、ビューコントローラの変化をアニメーション化する?
-
[解決済み] オプションのメソッドを持つプロトコルを作成するには?
-
[解決済み] CALayerのanchorPointを変更すると、ビューが移動します。
-
[解決済み] AppDelegate.mで画面上に現在表示されているUIViewControllerを取得する。