2020/01/15 実務で学んだこと

【実務で学んだこと】 Diary

その日に覚えたこと、学んだこと、知ったこと、気になったこと等を日記のように書いていきます。

今回は 2020/01/15(火)に学んだことを書いていきます。

【Swift】

UITextViewの表示を省略して「…」にする

以下のコードで最大行数を3行に設定し、文字が入りきらない場合は行末を「…」と表示する。

UITextView.textContainer.maximumNumberOfLines = 5
UITextView.textContainer.lineBreakMode = .byTruncatingTail

参考記事

UITextViewの行数を取得する

以下のメソッドでUITextViewの行数を取得できる。

func getNumberOfLines(in textView: UITextView) -> Int {
    let numberOfGlyphs = textView.layoutManager.numberOfGlyphs
    var index = 0, numberOfLines = 0
    var lineRange = NSRange(location: NSNotFound, length: 0)
    while index < numberOfGlyphs {
        textView.layoutManager.lineFragmentRect(forGlyphAt: index, effectiveRange: &lineRange)
        index = NSMaxRange(lineRange)
        numberOfLines += 1
    }
    return numberOfLines
}

参考記事

UITextViewの文字の周りの余白を広げる

UITextViewの文字の周りを広げるには textContainerInset を使用する。

textView.textContainerInset = UIEdgeInsetsMake(20, 20, 20, 20)
textView.sizeToFit()

参考記事

UITextViewの文字周りの余白を消す

逆にUITextViewの文字の周りの余白を消す場合には以下のようにする。

textView.textContainerInset = UIEdgeInsetsZero
textView.textContainer.lineFragmentPadding = 0 

参考記事

UIButtonの文字の変更

UIButtonの文字を動的に変更したい場合はIBActionに記述します。

以下のように設定することで、ボタンがタップされた時に文字が変更します。

@IBAction func greeting(_ sender: UIButton) {
        sender.titleLabel?.text = "こんにちは!"
}

参考記事