UILabelの高さを動的に可変させ,textを複数行表示する

More than 3 years have passed since last update.

テキストのfontsizeを変えずにまぁまぁ長い文を表示させたかった。


Labelの高さを可変させる

@IBOutlet var titleLabel: UILabel!

//表示可能最大行数を指定
titleLabel.numberOfLines = 0
//contentsのサイズに合わせてobujectのサイズを変える
titleLabel.sizeToFit()
//単語の途中で改行されないようにする
titleLabel.lineBreakMode = NSLineBreakByWordWrapping

基本的にはこれだけ。


このLabelの下に何かを置く時は...

えーっと、普通にstoryboardで設置すると、labelが大きくなった分が他のオブジェクトと重なってしまうから記述します。

今回はtableviewを下に置くことにします。

//labelのframe(位置とサイズ)を取っとく

labelframe = titleLabel.frame
//tableviewの位置指定
tableView.frame.origin.x = 0
tableView.frame.origin.y = labelframe.origin.y + labelframe.size.height
tableView.sizeToFit()

こんな感じ?