26 lines
887 B
Swift
26 lines
887 B
Swift
|
//
|
||
|
// String+.swift
|
||
|
// NetNewsWire
|
||
|
//
|
||
|
// Created by Maurice Parker on 4/8/19.
|
||
|
// Copyright © 2019 Ranchero Software. All rights reserved.
|
||
|
//
|
||
|
|
||
|
import UIKit
|
||
|
|
||
|
extension String {
|
||
|
|
||
|
func height(withConstrainedWidth width: CGFloat, font: UIFont) -> CGFloat {
|
||
|
let constraintRect = CGSize(width: width, height: .greatestFiniteMagnitude)
|
||
|
let boundingBox = self.boundingRect(with: constraintRect, options: .usesLineFragmentOrigin, attributes: [NSAttributedString.Key.font: font], context: nil)
|
||
|
return ceil(boundingBox.height)
|
||
|
}
|
||
|
|
||
|
func width(withConstrainedHeight height: CGFloat, font: UIFont) -> CGFloat {
|
||
|
let constraintRect = CGSize(width: .greatestFiniteMagnitude, height: height)
|
||
|
let boundingBox = self.boundingRect(with: constraintRect, options: .usesLineFragmentOrigin, attributes: [NSAttributedString.Key.font: font], context: nil)
|
||
|
return ceil(boundingBox.width)
|
||
|
}
|
||
|
|
||
|
}
|