【Xcode/Swift】文字列のサイズを取得する方法

Extension

UIFontを渡すと、文字列のサイズが取得できるExtensionです。

extension String {
    func size(with font: UIFont) -> CGSize {
        let attributes = [NSAttributedString.Key.font : font]
        return (self as NSString).size(withAttributes: attributes)
    }
}

使い方

以下のように、text.size(with: font)で幅と高さが取得できます。

let font = UIFont.systemFont(ofSize: 15)
let text = "ここに文字列を入れる"
let size = text.size(with: font)
print("width: ", size.width)
print("height: ", size.height)