Я использую NSMutableAttributedString
для форматирования текстовых строк.Работает нормально даже со ссылками.Но по какой-то причине размер шрифта для ссылок не изменится, даже если я указал размер.Моя функция выглядит следующим образом: (В коде есть комментарии, объясняющие все)
func formatfunc2(chapter: String, boldStart: Int, boldLength: Int, italicsStart: Int, italicsLength: Int, link: [String], linkStart: [Int], linkEnd: [Int]) -> NSAttributedString {
let bold = UIFont.boldSystemFont(ofSize: 17)
let italics = UIFont.italicSystemFont(ofSize: 17)
//BELOW IS MY FORMAT FOR THE HYPERLINK
let hyperlink = UIFont.boldSystemFont(ofSize: 17)
let attributedString = NSMutableAttributedString.init(string: chapter, attributes: [NSAttributedStringKey.font: UIFont.systemFont(ofSize: 17)])
//BELOW ARE FORMAT FOR BOLD AND ITALICS - AND THEY WORK FINE
attributedString.addAttribute(.font, value: bold, range: NSRange.init(location: boldStart, length: boldLength))
attributedString.addAttribute(.font, value: italics, range: NSRange.init(location: italicsStart, length: italicsLength))
//THE LOOP GOES THROUGH ALL LINK ADRESSES AND THEIR POSITIONS
for i in 0...link.count - 1 {
//HERE I ADD THE FONT SIZE TO THE SAME POSITION AS THE LINKS, BUT IT DOESN'T WORK
attributedString.addAttribute(.font, value: hyperlink, range: NSRange.init(location: linkStart[i], length: linkEnd[i]))
let url = URL(string: link[i]) as! URL
//MY THEORY IS THAT THE CODE BELOW OVERRIDES THE PREVIOUS FONT SIZE
attributedString.setAttributes([.link: url], range: NSMakeRange(linkStart[i], linkEnd[i]))
}
return attributedString
}
Таким образом, формат отлично работает для всего остального текста, но не для links
.Могу ли я вместо этого добавить размер шрифта в последней части кода?:
attributedString.setAttributes([.link: url], range: NSMakeRange(linkStart[i], linkEnd[i]))