web-dev-qa-db-ja.com

UILabelをテキストに合わせてサイズ変更する方法

ビューの中央にあるストーリーボードにレイアウトしたUILabelがあります。 「タップしてログイン」という最初のテキストがあります。

ユーザーがログインしたら、ラベルの値をユーザーの名前に変更します。これを行うと、UILabelのサイズが変更されていないため、ラベルが中央に配置されなくなります。

Interface Builderの自動レイアウトでこれを行うにはどうすればよいですか?

11
zorro2b

enter image description here

このscrrenshotを参照してください

1最初にラベル幅の制約を選択します

2関係を以上に設定します

3ここでデフォルトの定数値を設定します10を設定します

ラベルテキストを変更すると、テキストに応じてラベルのサイズが変更されます。それが助けになることを願っています:)

13
balkaran singh

ラベルが高さと幅を取得していないと推測しているので、これらの制約を与えることを検討してください。テキストが変更されたら、次の方法を使用して高さと幅を決定します。

    func labelSizeWithString(text: String, maxWidth : CGFloat,numberOfLines : Int) -> CGRect{
    let label = UILabel(frame: CGRectMake(0, 0, maxWidth, CGFloat.max))
    label.numberOfLines = numberOfLines
    label.text = text

    label.sizeToFit()

    return label.frame
}
1

UILabelframe.widthを大きく、おそらく画面と同じ幅に設定できます。

次に、

label.textAlignment = NSTextAlignmentCenter

0
Randall Wang

1.ラベルに最初のテキストを表示する2.ボタンを押してテキストを変更した後、画面の中央に表示される3.制約の3番目の画像を見て、2つの制約を指定して1.topを表示する2.コンテナの水平方向の中央

ラベルに固定幅を指定した場合は、関係を同じ以上に変更します。[幅の制約をクリックします。右上を参照して関係を変更します ]

0
Pavankumar