iOS 文字列のサイズ取得方法
iOSにおける文字列のサイズ取得方法のメモです。 Viewの横幅と比較して、1行に何文字表示出来るか等の計算が出来たりします。
文字列のサイズ取得
NSStringクラスにサイズが取得出来るメソッドがあるので、こちらを使います。
UIFontを渡してあれば、フォントサイズに応じた文字列のサイズが取得出来ます。
// 今回はStringクラスのExtensionとして実装 import UIKit public extension String { public func size(with font: UIFont) -> CGSize { let attributes = [NSAttributedStringKey.font : font] return (self as NSString).size(withAttributes: attributes) } }
使い方
let font = UIFont.systemFont(ofSize: 13) let size = "abcde".size(with: font) let width = size.width let height = size.height
戻り値はCGSizeになっていますが、こちらは1行に全文字を並べた場合のサイズを返すようです。つまり、文字数に応じてwidthだけが伸びていき、heightは常に1文字分の高さを返します。
- フォントサイズ13
- フォントサイズ20
- フォントサイズ20 + 長い文字列