■階層: NSObject > UIResponder > UIView > UILabel
UILabelは画面に文字列を表示するためのクラスです。
表示する文字列を設定できるほか、背景の色や文字の色、フォントのサイズなどさまざまな見栄えに関する情報をカスタマイズすることができます。
生成
プログラムからUILableを生成する場合、フレームでサイズを指定して生成します。
let label = UILabel(frame: CGRectMake(20, 20, 200, 40))
主なプロパティ
text
表示する文字列を設定します。
■定義:
var text: String?
■使用例:
label.text = "ラベルです"
font
表示する文字列のフォントを設定します。
■定義:
var font: UIFont!
■使用例:
label.font = UIFont.systemFontOfSize(14); //フォントサイズの指定
label.font = UIFont.systemFontOfSize(UIFont.systemFontSize()) //システムフォントサイズと同じサイズ
label.font = UIFont.italicSystemFontOfSize(UIFont.labelFontSize()) //イタリックに変更
label.font = UIFont.boldSystemFontOfSize(UIFont.labelFontSize()) //ボールドに変更
label.font = UIFont(name:"ArialHebew", size:UIFont.labelFontSize())
textColor
表示する文字列の文字の色を設定します。
■定義:
var textColor: UIColor!
■使用例:
label.textColor = UIColor.redColor() //赤色に設定
textAlignment
文字列の配置を設定します。
■定義:
var textAlignment: NSTextAlignment
■使用例:
label.textAlignment = NSTextAlignment.Left //左揃え
label.textAlignment = NSTextAlignment.Center //中央揃え
label.textAlignment = NSTextAlignment.Right //右揃え
lineBreakMode
改行が発生した場合の表示方法を設定します。
■定義:
var lineBreakMode: NSLineBreakMode
■使用例:
label.lineBreakMode = NSLineBreakMode.ByWordWrapping //デフォルト: 単語の切れ目で折り返しが発生
label.lineBreakMode = NSLineBreakMode.ByCharWrapping //単語の切れ目でも折り返し
label.lineBreakMode = NSLineBreakMode.ByClipping // はみ出した部分を表示しない
label.lineBreakMode = NSLineBreakMode.ByTruncatingHead //文字列の先頭を省略して表示
label.lineBreakMode = NSLineBreakMode.ByTruncatingTail //文字列の末尾を省略して表示
label.lineBreakMode = NSLineBreakMode.ByTruncatingMiddle //文字列の中央を省略して表示
numberOfLines
ラベルの行数を指定するプロパティです。1行がデフォルト値で、0を指定すると行数の制限がなくなります。
■定義:
</code>var numberOfLines: Int</pre>
■使用例:
```swift
label.numberOfLines = 0 // 1がデフォルト。0だと制限が無くなる。
サンプル
UILabelのサンプルです。1つ目のラベルはコードから。2〜4個目のラベルはストーリーボードで設定したラベルのプロパティを一部コードから変更しています。折り返表示してラベルのサイズをフィットさせたい場合オートレイアウトを無効化しておく必要があります。
class ViewController: UIViewController {
@IBOutlet weak var colorLabel: UILabel!
@IBOutlet weak var alignLabel: UILabel!
@IBOutlet weak var multiLineLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
//1. コードからラベルを設定
let label = UILabel(frame: CGRectMake(20, 20, 200, 40))
label.text = "Sample Label"
label.backgroundColor = UIColor.grayColor()
label.font = UIFont.systemFontOfSize(14); //フォントサイズの指定
label.font = UIFont.systemFontOfSize(UIFont.systemFontSize()) //システムフォントサイズと同じサイズ
label.font = UIFont.italicSystemFontOfSize(UIFont.labelFontSize()) //イタリックに変更
label.font = UIFont.boldSystemFontOfSize(UIFont.labelFontSize()) //ボールドに変更
label.font = UIFont(name:"ArialHebew", size:UIFont.labelFontSize()) //フォント名を指定
label.textColor = UIColor.redColor() //赤色に設定
label.textAlignment = NSTextAlignment.Left //左揃え
label.textAlignment = NSTextAlignment.Center //中央揃え
label.textAlignment = NSTextAlignment.Right //右揃え
label.lineBreakMode = NSLineBreakMode.ByWordWrapping //デフォルト: 単語の切れ目で折り返しが発生
label.lineBreakMode = NSLineBreakMode.ByCharWrapping //単語の切れ目でも折り返し
label.lineBreakMode = NSLineBreakMode.ByClipping // はみ出した部分を表示しない
label.lineBreakMode = NSLineBreakMode.ByTruncatingHead //文字列の先頭を省略して表示
label.lineBreakMode = NSLineBreakMode.ByTruncatingTail //文字列の末尾を省略して表示
label.lineBreakMode = NSLineBreakMode.ByTruncatingMiddle //文字列の中央を省略して表示
label.numberOfLines = 0 // 1がデフォルト。0だと制限が無くなる。
self.view.addSubview(label)
//2. ストーリーボードで設定したラベルの色を変更
colorLabel.backgroundColor = UIColor.orangeColor()
colorLabel.textColor = UIColor.grayColor()
//3. ストーリーボードで設定したラベルの配置を変更
alignLabel.textAlignment = NSTextAlignment.Center
alignLabel.backgroundColor = UIColor.grayColor()
//4.折り返しの設定
multiLineLabel.translatesAutoresizingMaskIntoConstraints = true //オートレイアウトを無効化しておかないとうまくフィットしない
multiLineLabel.text = "これは折り返しラベルの設定です。複数行になった場合の表示が確認できます。"
multiLineLabel.numberOfLines = 0
multiLineLabel.lineBreakMode = NSLineBreakMode.ByCharWrapping
multiLineLabel.sizeToFit()
multiLineLabel.backgroundColor = UIColor.lightGrayColor()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
実行結果です。