Размер строки

У строк есть ряд дополнительных методов для отрисовки и вычисления занимаемой на экране области. Показывать текст все же лучше через компоненты графического интерфейса, а вот определение размера может быть полезным.

Метод sizeWithAttributes принимает на вход словарь атрибутов и возвращает прямоугольную область, необходимую для отображения строки с такими параметрами. Допустимые атрибуты: шрифт, толщина обводки, межбуквенный интервал, тень и другие декорации; полный список — в документации.

import UIKit

class ViewController: UIViewController {
    var stringLabel = UILabel()
    var stringSize = UIView()

    let stringAttributes: [String: AnyObject] =
    [
        NSFontAttributeName: UIFont.systemFontOfSize(25),
        NSStrokeWidthAttributeName: 5
    ]

    override func viewDidLoad() {
        super.viewDidLoad()

        stringLabel.frame = CGRect(x: 0, y: 100, width: 300, height: 50)
        stringLabel.backgroundColor = UIColor.yellowColor()
        stringLabel.attributedText = NSAttributedString(string: "Luke, I'm not your father",
                                                        attributes: stringAttributes)

        stringSize.frame = CGRect(x: 0, y: 160, width: 0, height: 0)
        stringSize.backgroundColor = UIColor(white: 0.9, alpha: 1)

        view.addSubview(stringLabel)
        view.addSubview(stringSize)

        stringSize.frame.size = stringLabel.text!.sizeWithAttributes(stringAttributes)
    }
}