UILabelのwidth/幅を文字列の長さに合わせて調節(Swift版)

スポンサーリンク

iOS 開発で、UILabel は文字列を表示させるために頻繁に使うオブジェクトですが、文字列の長さに合わせて動的に UILabel の width(幅)を調節するコードを書きました。CGSizeMake や sizeThatFits などを使う。

— 環境 —
Swift 1.2
Xcode 6.3.2

【お知らせ】 英単語を画像イメージで楽に暗記できる辞書サイトを作りました。英語学習中の方は、ぜひご利用ください!
画像付き英語辞書 Imagict | 英単語をイメージで暗記
【開発記録】
英単語を画像イメージで暗記できる英語辞書サービスを作って公開しました
スポンサーリンク

NSLayoutConstraint の Outlet を作成

UILabel の width に対して任意の AutoLayout 設定を行った後、その制約(NSLayoutConstraint)の Outlet を作成する。以下画像のように、 Width の制約を Ctrl + ドラッグして、アシスタントエディタに開いた ViewController にドロップして、Outlet を作成します。

Screen Shot 2015-06-18 at 19.38.49

今回の例では、Name には titleLabelWidth と入力。

UILabel#sizeThatFits() メソッドでぴったりのサイズを設定

UILabel 自体には、titleLabel という名前の Outlet を作成済みとします。下記コードの「titleLabel.text = someTitle」の行で、titleLabel に入る文字列を設定していますが、この someTitle が動的に文字列が決定されるための変数です。someTitle に色んな長さの文字列が入ることになります。

someViewController.swift

何をやっているかは、コメントを見るとだいたい分かるかと思います。これで、UILabel の width を文字列の幅に合わせて調節できるようになりました。

スポンサーリンク
 
スポンサーリンク

Leave Your Message!