UILabel
私はUIView
というテキストを正確に追加したいと思っています。テキストの中心揃え開始位置を計算する
問題は、ラベルのテキストが中央に揃えられているため、実際のテキストの開始位置と配置先を特定する方法がわかりません。UIView
どのように私はこのことを計算できますか?
ありがとうございました!
UILabel
私はUIView
というテキストを正確に追加したいと思っています。テキストの中心揃え開始位置を計算する
問題は、ラベルのテキストが中央に揃えられているため、実際のテキストの開始位置と配置先を特定する方法がわかりません。UIView
どのように私はこのことを計算できますか?
ありがとうございました!
yourLabel.sizeToFit()
必要なスペースのラベルを自動的にサイズ変更します。そして、あなたのラベルの枠を次のように読んでください:
yourLabel.frame.size (width or height)
UILabel
と新しいUIView
をラップするUIView
コンテナを使用できます。次に、UILabel
の内容に応じて幅を決め、それをコンテナの中央に設定することができます。この作業が完了したら、UILabel
xを読んで開始点を理解することができます。
のでUILabel
はtop
に少しUIView
のに対し、水平に対してtop
、bottom
、あなたが望む高さにし、中央に制約、bottom
、height
、width
とUILabel
私は本当に理解していません、私はより良い理解を助けるための簡単な例であなたの答えを編集してくださいできますか? –
これはautolayoutでそれを解決する方法の説明です。 – derdida
@ FS.O5私の回答を更新しました –
leading
を持っています
From:How to find the position(x,y) of a letter in UILabel
NSRange range = [@"Good,Morning" rangeOfString:@","];
NSString *prefix = [@"Good,Morning" substringToIndex:range.location];
CGSize size = [prefix sizeWithFont:[UIFont systemFontOfSize:18]];
CGPoint p = CGPointMake(size.width, 0);
NSLog(@"p.x: %f",p.x);
NSLog(@"p.y: %f",p.y);
あなたはあなたの目的のためにそれを修正することができ
あなたは、あなたがこれを使用して矩形を見つけることができます
let label = UILabel(frame: CGRectMake(0, 0, 100, 100))
label.text = "dshfk,j"
label.textAlignment = .Center
label.textColor = UIColor.redColor()
let string = label.attributedText
let width = string!.size().width
let height = string!.size().height
let view = UIView(frame: CGRectMake(width, height, width, height))
view.backgroundColor = UIColor.blackColor()
を "nsattributedstring" を使用してテキストサイズを取得することができます。..
サンプル・ビュー
本当に計算が必要ですか?その中央のラベルを親ビューに使用して、あなたのUIViewと同じように設定するのはなぜでしょうか。ラベルは、テキストの正確なサイズにする必要があります。 – derdida
@derdidaビューは1ピクセル幅と5ピクセルの高さです。テキストが始まる場所に正確に表示します。だから、私はそれを計算する必要があります –
となぜtextviewの左端に設定されていないのですか?そうでなければ、あなたのラベルに "sizeToFit()"を使用して、サイズを取得することができます(label.frame.size.width) – derdida