Точно это можно сделать с помощью различных методов sizeWithFont:
в NSString UIKit Additions . В вашем случае будет достаточно простейшего варианта (поскольку у вас нет многострочных меток):
NSString *someString = @"Hello World";
UIFont *yourFont = // [UIFont ...]
CGSize stringBoundingBox = [someString sizeWithFont:yourFont];
Существует несколько вариантов этого метода, например. некоторые рассматривают режимы переноса строки или максимальные размеры.
Поскольку sizeWithFont
устарел, я просто собираюсь обновить свой исходный ответ на использование Swift 4 и .size
//: Playground - noun: a place where people can play
import UIKit
if let font = UIFont(name: "Helvetica", size: 24) {
let fontAttributes = [NSAttributedStringKey.font: font]
let myText = "Your Text Here"
let size = (myText as NSString).size(withAttributes: fontAttributes)
}
Размер должен быть на экране размер "Your Text Here" в пунктах.