ビューの中央にあるストーリーボードにレイアウトしたUILabelがあります。 「タップしてログイン」という最初のテキストがあります。
ユーザーがログインしたら、ラベルの値をユーザーの名前に変更します。これを行うと、UILabelのサイズが変更されていないため、ラベルが中央に配置されなくなります。
Interface Builderの自動レイアウトでこれを行うにはどうすればよいですか?
ラベルが高さと幅を取得していないと推測しているので、これらの制約を与えることを検討してください。テキストが変更されたら、次の方法を使用して高さと幅を決定します。
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
}
UILabel
frame.width
を大きく、おそらく画面と同じ幅に設定できます。
次に、
label.textAlignment = NSTextAlignmentCenter