CoreText не не имеет встроенную поддержку зачеркивания типографского оформления текста (но поддерживает подчеркивания просто отлично, как вы отметили в своемвопрос).Полный список строковых атрибутов, поддерживаемых CoreText, описан здесь . .
. Это старое, сообщение в блоге, основанное на Objective-C , предоставляет необходимую информацию для реализации зачеркивания вручную с использованием CoreText.API-интерфейсы.К сожалению, это не быстрое решение.
Более высокий уровень TextKit framework обеспечивает поддержку зачеркивания.Чтобы быстро увидеть, что работает, просто замените эту строку в исходном коде:
CTLineDraw(line, context)
на это вместо:
attrString.draw(at: .zero)
И, кстати, это как-то помогает подтвердить, что ничего не былонеправильно с вашим исходным NSAttributedString
для начала;)
Конечно, в зависимости от того, насколько ваш код полагается на CoreText, переключение на TextKit может быть нетривиальной задачей, поэтому вам нужно держать это вум тоже.