UILabel サンプル
サンプルで動作を確認 コピーペーストで確認できます。
全体をコピー後、不必要な部分を削除することでコーディングを素早くできます。
■ よく使う簡易サンプル
let label = UILabel() // テキスト label.text = "This is UILabel." // ラベルの大きさ label.frame = CGRectMake(0, 0, 300, 80) // 背景の色 label.backgroundColor = UIColor.redColor() // テキストの色 label.textColor = UIColor.orangeColor() // フォントを設定 label.font = UIFont.systemFontOfSize(12) // テキストの左右構え label.textAlignment = NSTextAlignment.Left // numberOfLines を [0] に設定しないと自動リサイズされない。 label.numberOfLines = 0 // 自動リサイズ label.sizeToFit() //最小のフォントサイズ label.minimumScaleFactor = 5.0 // タップを有効にしたい場合 label.userInteractionEnabled = true // サイズを小さくしても表示させたい場合 label.adjustsFontSizeToFitWidth = true self.view.addSubview(label)
■ 詳しいサンプル
let uiLabel = UILabel()
// ラベルで表示する文字を設定、または取得します。
// テキストを設定
uiLabel.text = "あいうえお"
// テキスト文字の属性 NSAttributedString を設定
// attribute(持っている属性全て)を設定、または取得します。
let attribute : NSAttributedString = NSAttributedString(
string: "bold",
attributes: [NSFontAttributeName: UIFont(name: "HiraKakuProN-W6", size: 20)!]
)
uiLabel.attributedText = attribute
// テキストのフォントを設定
uiLabel.font = UIFont.systemFontOfSize(12)
// テキストのカラーを設定
uiLabel.textColor = UIColor.redColor()
// テキストの設定されている文字の位置を設定
uiLabel.textAlignment = NSTextAlignment.Left
// 設定できる文字の位置の種類
enum NSTextAlignment : Int {
case Left
case Center
case Right
case Justified
case Natural
}
// テキストの改行(ラインブレイク)を設定
uiLabel.lineBreakMode = NSLineBreakMode.ByWordWrapping
// 設定できる改行(ラインブレイク)の種類
enum NSLineBreakMode : Int {
case ByWordWrapping
case ByCharWrapping
case ByClipping
case ByTruncatingHead
case ByTruncatingTail
case ByTruncatingMiddle
}
// ラベルのインスタンスの有効、無効を設定します。
// 無効に設定すると文字がグレーダウンします。
uiLabel.enabled = true
// 文字長さに応じて、フォントサイズを自動で調整します。文字長くなると自動で文字の大きさが小さくなります。
// フォントサイズを自動で調整させてたい場合は true を設定します。
uiLabel.adjustsFontSizeToFitWidth = true
// 文字列の長さに応じて、フォントサイズ、改行モード、文字間隔を最大限に調整します。
// 有効にする場合は true 、無効にする場合は、false を設定します。
uiLabel.allowsDefaultTighteningForTruncation = true
// 文字の上下中央寄せの状態を設定します。
uiLabel.baselineAdjustment = UIBaselineAdjustment.AlignBaselines
// 設定できる上下中央寄の種類
enum UIBaselineAdjustment : Int {
case AlignBaselines
case AlignCenters
case None
}
// フォントサイズの調整が自動の時のフォントサイズの最小値を設定
// 表示する行数を設定。
uiLabel.minimumScaleFactor = 8.0
// 表示する行数を設定、または取得します。
// 最大表示行数を3行で設定する場合
uiLabel.numberOfLines = 3
// ボタン、セル等がタップされた時に表示するテキストの色を設定します。
// 赤色を設定する
uiLabel.highlightedTextColor = UIColor.redColor()
// ハイライトの有効、無効を設定します。ボタン、セル等がタップされた時に表示するテキストの色を適用するか? 有効、無効の設定ができます。
// 有効にする場合
uiLabel.highlighted = true
// 文字のシャドウの色を設定します。
// シャドウを赤で設定します。
uiLabel.shadowColor = UIColor.redColor()
// 文字のシャドウの位置を設定します。
// 位置を右に1、下に2で設定する場合
uiLabel.shadowOffset = CGSizeMake(1, 2);
// タップを感知するかの設定をします。
// true を設定した場合、タップを有効にします。
uiLabel.userInteractionEnabled = true
UILabel 概要
UIKit のラベルを利用する時に利用します。
- Import Statement
import UIKit - Available
iOS 2.0 and later - Inherits
UIView
インスタンスメソッド
■ func textRectForBounds(_ bounds: CGRect,limitedToNumberOfLines numberOfLines: Int) -> CGRect
Returns the drawing rectangle for the label’s text.
■ func drawTextInRect(_ rect: CGRect)
Draws the receiver’s text (or its shadow) in the specified rectangle.
プロパティ
■ ラベルで表示する文字を設定、または取得
var text: String?
let uiLabel = UILabel() // テキストを設定 uiLabel.text = "あいうえお" // 設定されているテキストを取得 print(uiLabel.text)
■ attribute(持っている属性全て)を設定、または取得
@NSCopying var attributedText: NSAttributedString?
let uiLabel = UILabel()
uiLabel.text = "あいうえお"
// NSAttributedString を取得
let attribute : NSAttributedString = uiLabel.attributedText!
print(attribute)
// NSAttributedString を設定
let attribute2 : NSAttributedString = NSAttributedString(
string: "bold",
attributes: [NSFontAttributeName: UIFont(name: "HiraKakuProN-W6", size: 20)!]
)
uiLabel.attributedText = attribute2
■ 設定されているフォントを設定、または取得
var font: UIFont!
let uiLabel = UILabel() uiLabel.text = "あいうえお" // 設定されているフォントを取得 let font : UIFont = uiLabel.font! print(font) // フォントを設定 uiLabel.font = UIFont.systemFontOfSize(12)
■ 設定されているカラーを設定、または取得
var textColor: UIColor!
let uiLabel = UILabel() uiLabel.text = "あいうえお" // 設定されているカラーを取得 let color : UIColor = uiLabel.textColor! print(color) // カラーを設定 uiLabel.textColor = UIColor.redColor()
■ 設定されている文字の左右等の位置を設定、または取得
var textAlignment: NSTextAlignment
let uiLabel = UILabel()
uiLabel.text = "あいうえお"
// 設定されている文字の位置を取得
let textAlignment : NSTextAlignment = uiLabel.textAlignment
print(textAlignment)
// 設定されている文字の位置を設定
uiLabel.textAlignment = NSTextAlignment.Left
// 設定できる文字の位置の種類
enum NSTextAlignment : Int {
case Left
case Center
case Right
case Justified
case Natural
}
■ 設定されている改行(ラインブレイク)の設定、または取得
var lineBreakMode: NSLineBreakMode
let uiLabel = UILabel()
uiLabel.text = "あいうえお"
// 改行(ラインブレイク)を取得
let lineBreak : NSLineBreakMode = uiLabel.lineBreakMode
// 改行(ラインブレイク)を設定
uiLabel.lineBreakMode = NSLineBreakMode.ByWordWrapping
// 設定できる改行(ラインブレイク)の種類
enum NSLineBreakMode : Int {
case ByWordWrapping
case ByCharWrapping
case ByClipping
case ByTruncatingHead
case ByTruncatingTail
case ByTruncatingMiddle
}
■ ラベルのインスタンスの有効、無効を設定
var enabled: Bool
無効に設定すると文字がグレーダウンします。
let uiLabel = UILabel() uiLabel.text = "あいうえお" // ラベルを有効に設定する。 uiLabel.enabled = true print(uiLabel.enabled) // ラベルの有効、無効状態を取得します。 let uiLabelEnabled : Bool = uiLabel.enabled print(uiLabelEnabled)
■ 文字長さに応じて、フォントサイズを自動で調整。文字長くなると自動で文字の大きさが小さくなります。
var adjustsFontSizeToFitWidth: Bool
let uiLabel = UILabel() uiLabel.text = "あいうえお" // フォントサイズを自動で調整させてたい場合は true を設定します。 uiLabel.adjustsFontSizeToFitWidth = true // 現在のフォントサイズの自動調整の状態を取得します。 let adjusts : Bool = uiLabel.adjustsFontSizeToFitWidth print(adjusts)
■ 文字列の長さに応じて、フォントサイズ、改行モード、文字間隔を最大限に調整
var allowsDefaultTighteningForTruncation: Bool
let uiLabel = UILabel() uiLabel.text = "あいうえお" // 有効にする場合は true 、無効にする場合は、false を設定します。 uiLabel.allowsDefaultTighteningForTruncation = true // 現在の状態を取得します。 let allows : Bool = uiLabel.allowsDefaultTighteningForTruncation print(allows)
■ 文字の上下中央寄せを設定、または取得
var baselineAdjustment: UIBaselineAdjustment
// 文字の上下中央寄せの状態を取得します。
let lineAdjustment : UIBaselineAdjustment = uiLabel.baselineAdjustment
// 文字の上下中央寄せの状態を設定します。
uiLabel.baselineAdjustment = UIBaselineAdjustment.AlignBaselines
// 設定できる上下中央寄の種類
enum UIBaselineAdjustment : Int {
case AlignBaselines
case AlignCenters
case None
}
■ フォントサイズの調整が自動の時のフォントサイズの最小値を設定、または取得
var minimumScaleFactor: CGFloat
// フォントサイズの最小値を設定 uiLabel.minimumScaleFactor = 8.0 // フォントサイズの最小値を取得 let minimumScale : CGFloat = uiLabel.minimumScaleFactor print(minimumScale)
■ 表示する行数を設定、または取得
var numberOfLines: Int
// 最大表示行数を3行で設定する場合 uiLabel.numberOfLines = 3 // 現在設定されている最大表示行数を取得する。 let numberOfLines : Int = uiLabel.numberOfLines print(numberOfLines)
■ ボタン、セル等がタップされた時に表示するテキストの色を設定
var highlightedTextColor: UIColor?
// 赤色を設定する uiLabel.highlightedTextColor = UIColor.redColor() // 設定されている色を取得する let highlightedTextColor = uiLabel.highlightedTextColor
■ ハイライトの有効、無効を設定
var highlighted: Bool
ボタン、セル等がタップされた時に表示するテキストの色を適用するか? 有効、無効の設定ができます。
// 有効にする場合 uiLabel.highlighted = true // 設定されている状態を取得 let allows : Bool = uiLabel.highlighted print(allows)
■ 文字のシャドウの色を設定
var shadowColor: UIColor?
// シャドウを赤で設定します。 uiLabel.shadowColor = UIColor.redColor() // 設定されているシャドウの色を取得します。 let shadowColor = uiLabel.shadowColor
■ 文字のシャドウの位置を設定
var shadowOffset: CGSize
// 位置を右に1、下に2で設定する場合 uiLabel.shadowOffset = CGSizeMake(1, 2); // 設定されているシャドウの位置を取得します。 let shadowOffset : CGSize = uiLabel.shadowOffset print(shadowOffset)
■ var preferredMaxLayoutWidth: CGFloat
The preferred maximum width (in points) for a multiline label.
■ タップを感知するかを設定
var userInteractionEnabled: Bool
// true を設定した場合、タップを有効にします。 uiLabel.userInteractionEnabled = true // 設定されている状態を取得します。 let userInteraction : Bool = uiLabel.userInteractionEnabled print(userInteraction)
おすすめの本
