Плохой рендеринг текста с Core Animation

Прежде всего, я знаю, что эта тема поднималась несколько раз раньше, но я ' m отправляю этот вопрос, потому что ни одно из «решений», которые я использовал в прошлом, не помогло в этом конкретном случае. Я рисую текст для CALayer , который размещен в представлении внутри моего NSToolbar. Вот как выглядит текст:

Font smoothing on

Я попытался использовать предложение из этого StackOverflow сообщения, которое заключается в вызове CGContextSetShouldSmoothFonts (ctx, false) , чтобы отключить субпиксельное сглаживание перед рисованием в контекст. Это решение, которое давало мне приемлемые результаты в прошлом, но в данном случае оно, кажется, сделало текст еще хуже:

Font smoothing off

Другое решение, упомянутое в этом посте, - заполнить прямоугольник непрозрачным цветом фона перед рисование, что в данном случае просто невозможно, потому что фон панели инструментов является градиентным. Могу ли я что-нибудь сделать, чтобы этот текст выглядел так же красиво, как текст, нарисованный на обычном NSView ?

9
задан Community 23 May 2017 в 12:31
поделиться