Сначала инициализируйте новую изменяемую строку с атрибутами из ваших html данных:
extension NSAttributedString {
convenience init(data: Data, documentType: DocumentType, encoding: String.Encoding = .utf8) throws {
try self.init(attributedString: .init(data: data, options: [.documentType: documentType, .characterEncoding: encoding.rawValue], documentAttributes: nil))
}
}
let html = """
Play million of songs ad-free across all your devices.* Terms and conditions applied.<br><br><small>* Requires a subscription</small>
"""
do {
let attrStr = try NSMutableAttributedString(data: Data(html.utf8), documentType: .html)
} catch {
print(error)
}
затем перечислите атрибуты в вашей строке и проверьте, маленький ли размер шрифта (10), если маленький, установите шрифт на желаемый тип и его размер на 10, в противном случае 20:
attrStr.enumerateAttributes(in: .init(location: 0, length: attrStr.length)) { dict, range, stop in
var attributes = dict
if let font = attributes[.font] as? UIFont {
attributes[.font] = UIFont(name: "Helvetica", size: font.pointSize == 10 ? 10 : 20)
attrStr.setAttributes(attributes, range: range)
print((attrStr.string as NSString).substring(with: range))
print("fontName", font.fontName)
print("pointSize", font.pointSize)
}
}