Skip to content

Instantly share code, notes, and snippets.

@KentarouKanno
Last active December 26, 2015 15:20
Show Gist options
  • Save KentarouKanno/b22d0d657a8b4e2f4d3f to your computer and use it in GitHub Desktop.
Save KentarouKanno/b22d0d657a8b4e2f4d3f to your computer and use it in GitHub Desktop.
UILabel

UILabel

★ ラベルの生成

let label = UILabel()
 
let label:UILabel = UILabel()

// サイズを指定して生成
let label = UILabel(frame: CGRectMake(50, 50, 100, 50))

★ ラベルのサイズを設定する

label.frame = CGRectMake(50, 150, 100, 30)

★ ラベルの中心位置を設定する

label.layer.position = CGPointMake(self.view.frame.size.width / 2, 50)

label.center = self.view.center

★ ラベルのテキストを設定/取得する

label.text = "TEXT"

var labelText = label.text

★ ラベルのテキストカラーを設定する

label.textColor = UIColor.redColor()

★ ラベルのテキストフォントを設定する

label.font = UIFont.systemFontOfSize(12)

★ ラベルの背景色を設定する

label.backgroundColor = UIColor.yellowColor()

★ ラベルの横揃えを設定する

label.textAlignment = NSTextAlignment.Center

label.textAlignment = .Left

★ NSTextAlignment

/*
Left
Center
Right
*/

★ ラベルの表示可能最大行数を設定する

// 無制限
label.numberOfLines = 0

// 最大2行に設定
label.numberOfLines = 2

★ ラベルのタッチを検知するかしないかを設定する

// タッチを検知する
label.userInteractionEnabled = true

// タッチを検知しない(Default)
label.userInteractionEnabled = false

★ ラベルの有効/無効を設定する

// 有効(Default)
label.enabled = true

// 無効 文字色がグレーになる
label.enabled = false

★ ラベルのテキストの影の色を設定する

label.shadowColor = UIColor.grayColor()

★ ラベルのテキストの影の位置を設定する

// shadowColorがある場合に適用される(Default CGSizeMake(0, -1) Top Shadow)
label.shadowOffset = CGSizeMake(1.0, 2.0)
// 影の方向 CGSizeMake(-左+右, -上+下)

★ 表示文字が表示領域を超えた場合の処理を設定する

// minimumScaleFactorの設定がある場合はそのサイズまで縮小、ない場合は入るまで縮小される
label.adjustsFontSizeToFitWidth = true

// フォントを縮小しない、入らない時は3点リーダー表示になる(Default)
label.adjustsFontSizeToFitWidth = false

★ 最小のフォントサイスを割合で設定する

// fontSizeの50% (0.0 〜 1.0)
label.minimumScaleFactor = 0.5

// 最小のフォントサイズ / 現在のフォントサイズ
label.minimumScaleFactor = 10.0 / 15.0

★ ハイライト時のテキストカラーを設定する

// highlightedがtrueの時のみ有効
label.highlightedTextColor = UIColor.greenColor()

★ ハイライトの有効/無効を設定する

// 有効
label.highlighted = true

// 無効(Default)
label.highlighted = false

★ 改行モードを設定する

label.lineBreakMode = NSLineBreakMode.ByWordWrapping

label.lineBreakMode = .ByTruncatingTail

★ NSLineBreakMode

/*
ByWordWrapping 単語が切れたところで改行しすべてを表示する (Default)
ByCharWrapping 文字の途中で改行しすべてを表示する
ByClipping はみ出た部分は表示しない
ByTruncatingHead 文の頭を省略して横幅に合わせる。文の頭に「...」
ByTruncatingTail 文の後ろを省略して横幅に合わせる 。文の後ろに「...」
ByTruncatingMiddle 文の真ん中を省略して横幅に合わせる。文の後ろに「...」
*/

★ ベースラインの調整を設定する

label.baselineAdjustment = UIBaselineAdjustment.AlignBaselines

label.baselineAdjustment = .None

★ UIBaselineAdjustment

/*
AlignBaselines (Default) 下
AlignCenters 中
None 上
*/

★ 装飾文字列を設定する

// attributedオブジェクトを生成
var attributedString = NSMutableAttributedString(string:"Attributed String")

var shadow = NSShadow()
shadow.shadowOffset = CGSizeMake(1.0, 1.0)
shadow.shadowColor = UIColor.darkGrayColor()
shadow.shadowBlurRadius = 5.0
attributedString.addAttribute(NSShadowAttributeName, value: shadow, range: NSMakeRange(0, attributedString.length))

attributedString.addAttribute(NSForegroundColorAttributeName, value: UIColor.yellowColor(), range: NSMakeRange(0, attributedString.length))

// 装飾文字を設定
label.attributedText = attributedString

★ ラベルの角丸半径を設定する

label.layer.cornerRadius = 5.0

★ ラベルのマスクの可否を設定する

// 有効
label.layer.masksToBounds = true

★ ラベルの枠線のカラーを設定する

label.layer.borderColor = UIColor.redColor().CGColor

★ ラベルの枠線の幅を設定する

label.layer.borderWidth = 1.0

★ ラベルの影のカラーを設定する

// masksToBoundsがtrueだと影は付けられない
// (Default opaque black)
label.layer.shadowColor = UIColor.darkGrayColor().CGColor

★ ラベルの影の透明度を設定する

// Default 0
label.layer.shadowOpacity = 0.8

★ ラベルの影の位置を設定する

// Defaults  (0, -3)
label.layer.shadowOffset = CGSizeMake(3.0, 2.0)
// 影の方向 CGSizeMake(-左+右, -上+下)

★ ラベルの影の半径(ぼかし効果)を設定する

label.layer.shadowRadius = 5.0

★ ラベルの文字位置を調整する

// サブクラスを作成してoverrideする
override func drawTextInRect(rect: CGRect) {

    // 現在の位置からyに5px移動させる
    let newRect = CGRectOffset(rect, 0, 5)
    super.drawTextInRect(newRect)
}

★ Viewにラベルを追加する

self.view.addSubview(label)

★ Viewからラベルを取り除く

label.removeFromSuperview()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment