Я пытаюсь добавить каждую строку из UILabel в массив, но код, который я использую, кажется не очень точным.
func getLinesArrayOfStringInLabel(label:UILabel) -> [String] { охранник пусть текст: NSString = label.text как? NSString еще { return [] } пусть шрифт:UIFont = label.font пусть rect:CGRect = label.frame пусть myFont: CTFont = CTFontCreateWithName (font.fontName как CFString, font.pointSize, ноль) let attStr:NSMutableAttributedString = NSMutableAttributedString (строка: текст как строка) attStr.addAttribute(NSAttributedStringKey.font, значение:myFont, диапазон: NSMakeRange(0, attStr.length)) let FrameSetter: CTFramesetter = CTFramesetterCreateWithAttributedString (attStr as CFAttributedString) пусть путь: CGMutablePath = CGMutablePath() path.addRect(CGRect(x: 0, y: 0, ширина: rect.size.width, высота: 100000)) let кадр: CTFrame = CTFramesetterCreateFrame (frameSetter, CFRangeMake (0, 0), путь, ноль) пусть линии = CTFrameGetLines(frame) как NSArray варlinesArray = [String]() для строки в строках { пусть lineRange = CTLineGetStringRange (строка как! CTLine) let range: NSRange = NSMakeRange (lineRange.location, lineRange.length) пусть lineString = text.substring(с: диапазоном) linesArray.append(lineString как строка) } обратные строкиМассив } пусть метка = UILabel() label.numberOfLines = 0 label.frame = CGRect(x: 40, y: 237, ширина: 265, высота: 53) label.font = UIFont.systemFont(ofSize: 22, вес: UIFont.Weight.regular) label.text = "Привет, как дела сегодня?" label.backgroundColor = .red bg.addSubview(метка) print(getLinesArrayOfStringInLabel(метка: метка)) Это распечатывается
["Привет, как дела", "сегодня?"] Но этикетка выглядит вот так:

Я ожидал получить ["Привет, как дела", "собираетесь сегодня?"]. Что происходит?
Мобильная версия