В прошивке 7 мы получили возможность преобразовать строку HTML в NSAttributedString, как это:Использование NSAttributedString перезаписать HTML атрибутов
NSString *html = @"<bold>Wow!</bold> Now <em>iOS</em> can create <h3>NSAttributedString</h3> from HTMLs!";
NSDictionary *options = @{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType};
NSAttributedString *attrString = [[NSAttributedString alloc] initWithData:[html dataUsingEncoding:NSUTF8StringEncoding] options:options documentAttributes:nil error:nil];
Мы также имеем возможность предоставлять значения по умолчанию для HTML, который не укажите определенные атрибуты, используя параметр NSDefaultAttributesDocumentAttribute.
Мой вопрос: есть ли способ указать NSAttributedString игнорировать определенные атрибуты, которые он видит в HTML (например, цвет), и вместо этого использовать тот, который я предоставляю? Другими словами, я хочу указать значение атрибута переопределения, а не значение по умолчанию.
Возможно, вы захотите изменить исходный HTML-код, найденный http://stackoverflow.com/a/21759504/1535038 –
HTML-код получен из ответа сервера, поэтому я не могу изменить без тонких манипуляций с строкой. –
Я бы либо перебирал атрибуты, которые вы хотите отредактировать, либо запустил html, хотя синтаксический анализатор xml, и сам установил атрибуты. Вы можете попробовать подклассифицировать NSAttributedString или испепелить метод setAttributes для перехвата сеттера и изменения значений по мере их передачи. – ethyreal