2014-09-11 14 views
10

W jednym z wykładów WWDC 2014 na temat nowego interfejsu Yosemite, mówi się, aby unikać używania zamaskowanych warstw NSVisualEffectView. Niestety warstwa moim zdaniem za ma maskę kształtu, a w rezultacie efekt wizualny wgląd w to ma brzydki poszarpany efekt krawędzi:NSVisualEffectView z maską ma postrzępione rogi

gross

Jednak wiem, to musi być w jakiś sposób można stworzyć zamaskowany efekt wizualny przeglądać, częściowo ze względu na 2 powodów:

  • nieruchomość maska ​​obraz na NSVisualEffectView tworzy gładką, anty-alised maskę (ale wymaga niemaskowalny tło za nim, a nie tylko niemaskowalny zobacz główne)
  • NSPopover i NSMenu wydają się być w stanie osiągnąć gładką maskę, która zmienia się z wymiarami:

Smooth

Also smooth

Chociaż jest doubtable, aby pogoda lub nie używają NSVisualEffectView i nie zwyczaj zamazany widok .

Czy mogę w jakiś sposób uzyskać gładką maskę, która nie opiera się na obrazie maski, ale raczej na ścieżce lub warstwie kształtu?

+1

Przebacz mi, że pytam, ale dlaczego nie skorzystać z NSP? (zwłaszcza, że ​​Apple twierdzi, że powinieneś unikać maskowania NSVisualEffectView) –

+0

@ DavidRönnqvist ma to zrobić ze sposobem, w jaki okno ma ukryty widok przewijania, strzałka pod ikoną jest w rzeczywistości częścią widoku treści, a tekst przechodzi przez nią . NSPopover nie maskuje swojej zawartości, więc wszystko, co próbuje się wyrenderować w strzale, zostaje przycięte. – Luke

+1

Ponadto, NSPopower faktycznie tworzy nieco inny efekt niż NSVisualEffectView. Oto przykład: https://devforums.apple.com/message/1061741#1061741. Inny przykład: pasek menu OS X ma taki sam efekt rozmycia jak NSVisualEffectView, podczas gdy NSMenus wygląda bardziej podobnie do NSPopover. Jeśli po prostu otworzysz menu w pasku menu, łatwo zobaczysz różnicę między tymi dwoma efektami. – iMaddin

Odpowiedz

0

starałem się to osiągnąć z NSWindow widzenia jakiś czas temu i natknąłem się na tej wspaniałej biblioteki: https://www.cocoacontrols.com/controls/waythedarkside

To pozwala na dodanie w jasnym lub ciemnym rozmycia do widoku/tle. Myślę, że to jest to, czego szukasz :)