2014-09-11 7 views
10

In einem der WWDC 2014 Gespräche auf der neuen Yosemite UI heißt es, die Verwendung von NSVisualEffectView in maskierten Schichten zu vermeiden. Leider hat meine Ansicht der Schicht, die eine Form Maske hat, und als Ergebnis darin die optische Wirkung Ansicht hat einen hässlichen gezackten Randeffekt:NSVisualEffectView mit Maske hat gezackte Ecken

gross

jedoch weiß, dass ich es irgendwie möglich sein muss, um einen maskierten visuellen Effekt zu erzeugen sehen, zum Teil auf 2 Gründe:

  • Die Bildmaske Eigenschaft auf NSVisualEffectView erzeugt einen glatten, anti-sierten Maske (aber erfordert einen unmaskierten Hintergrund dahinter, und nicht nur eine unmaskierte geordneten Ansicht)
  • NSPopover und NSMenu scheinen eine glatte Maske zu erreichen in der Lage sein, die mit den Abmessungen ändert:

Smooth

Also smooth

Obwohl es zweifelhaft wie Wetter oder nicht sie verwenden NSVisualEffectView, und nicht eine individuelle verschwommene Sicht .

Gibt es eine Möglichkeit, diese glatte Maske zu erreichen, die nicht auf einem Maskenbild beruht, sondern auf einer Pfad- oder Formebene?

+1

Verzeihen Sie mir für Fragen, aber warum nicht einfach einen NSPopover verwenden? (vor allem da Apple sagt, dass Sie vermeiden sollten, NSVisualEffectView zu maskieren) –

+0

@ DavidRönnqvist es mit der Art und Weise zu tun, dass das Fenster eine scrollview hat, die maskiert ist, ist der Pfeil unter dem Symbol tatsächlich ein Teil der Inhaltsansicht und der Text wird durchlaufen . NSPopover maskiert seinen Inhalt nicht, sodass alles, was versucht, sich innerhalb des Pfeils zu rendern, abgeschnitten wird. – Luke

+1

Ein NSPopover erzeugt auch einen etwas anderen Effekt als eine NSVisualEffectView. Hier ein Beispiel: https://devforums.apple.com/message/1061741#1061741. Ein weiteres Beispiel: Die OS X-Menüleiste hat den gleichen Unschärfeeffekt wie eine NSVisualEffectView, während der NSMenus eher einem NSPopover ähnelt. Wenn Sie einfach ein Menü in der Menüleiste öffnen, können Sie leicht den Unterschied zwischen den beiden Effekten sehen. – iMaddin

Antwort

0

Ich habe versucht, dies mit einer eine Weile zurück NSWindow Ansicht zu erreichen und ich auf diese ehrfürchtige Bibliothek kam: https://www.cocoacontrols.com/controls/waythedarkside

Es erlaubt Ihnen, ein helles oder dunkles Unschärfe zu Ihrer Sicht/Hintergrund hinzuzufügen. Ich denke, das ist, was Sie suchen :)