Laut der Dokumentation ist es möglich Aktivieren der Schriftartglättung in CATextLayer:
Text can only be drawn using sub-pixel antialiasing when it is composited into an existing opaque background at the same time that it's rasterized.
So verstehe ich diesen Satz:
%Vor%was nicht funktioniert. Text wird nicht mit Subpixel-Anti-Aliasing gezeichnet.
Die hier beschriebene Methode hier funktioniert:
>Fall 2: Wenn Sie einen CATextLayer direkt verwenden, müssen Sie dies tun Unterklasse CATextLayer und machen Sie so etwas wie in Ihrem Zeichencode:
%Vor%Hier ist ein Vergleich von geglättet vs nicht geglättet:
PS: Sehen Sie sich diese Antwort nicht auf einem CRT an.
Kann zu spät kommen. Aber ich sehe, dass diese Frage eine perfekte Lösung hat, wie Steves Antwort und nacho4ds Kommentar:
Wie ich diese Dokumentation verstehe, heißt es, dass CATextLayer
immer das Subpixel-Antialiasing deaktiviert. Der Satz, den Sie zitiert haben, wird nur als Erklärung dafür gegeben, nicht als Anweisungen, wie Sie ihn aktivieren können, gefolgt von:
Wenn Sie die Deckkrafteigenschaft des Layers auf
YES
setzen, wird der Rendermodus nicht geändert.
... was bedeutet, dass selbst wenn Sie einen undurchsichtigen Hintergrund für die Ebene verwenden, dies nicht die Tatsache ändert, dass CATextLayer
keine Subpixel-aa verwendet.
Wenn Sie nach einem Problem suchen, bei dem CATextLayer in OSX etwas verschwommenen Text rendert, habe ich nach viel Wall-Head-Banging den scharfen, klaren Text bekommen, indem ich Folgendes gemacht habe:
%Vor%(Ich habe auch die Ansichten Hintergrundschicht contentsScale auf die gleiche gesetzt).
Akzeptierte Antwort funktioniert nicht für meine.
Ich fand funktionierende Lösung auf Ignacio Nieto Blog
%Vor%Tags und Links objective-c core-animation macos antialiasing subpixel