Размер строки
У строк есть ряд дополнительных методов для отрисовки и вычисления занимаемой на экране области. Показывать текст все же лучше через компоненты графического интерфейса, а вот определение размера может быть полезным.
Метод 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)
}
}