Skip to content

Instantly share code, notes, and snippets.

@ukitaka
Last active September 3, 2016 15:28
Show Gist options
  • Save ukitaka/4d63aefd8b51889db1029d266e5afb4e to your computer and use it in GitHub Desktop.
Save ukitaka/4d63aefd8b51889db1029d266e5afb4e to your computer and use it in GitHub Desktop.
テキストのサイズ計算メモ

paddingなどを0にする

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

切り上げしないとiOS9で最後の行が切れる

func textHeight(text: NSString,
                font: UIFont = UIFont.systemFontOfSize(13.0),
                width: CGFloat) -> CGFloat {
    let attrDic = [ NSFontAttributeName: font ]
    let opt = NSStringDrawingOptions.UsesLineFragmentOrigin
    
    let size = text.boundingRectWithSize(CGSize(width: width, height: CGFloat.max),
                                            options: opt,
                                            attributes: attrDic,
                                            context: nil).size
    return ceil(size.height) // ここ
}
@ukitaka
Copy link
Author

ukitaka commented Sep 3, 2016

フォントを変えるときは .UsesFontLeading も必要

let opt = NSStringDrawingOptions.UsesLineFragmentOrigin.union(.UsesFontLeading)

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