Chcę dodać cień wokół zewnętrznej krawędzi CGPath HOLLOW (te dwa słowa są krytyczne: poza + pusty)).Cienie przycinające utworzone przez CALayer.shadow
Wdrożenie cienia Apple pozwala tylko na "wypełnione" cienie.
Więc ... jak wyciąć wewnętrzną część samego cienia? Gdyby to było wywoływanie renderowania, nazwałbym CGContextSetClip * metody, aby spiąć go tam, gdzie chciałem ... ale nie widzę, jak byś się do tego przyzwyczaił, ponieważ nie jest to ani wywołanie renderowania, ani sam CALayer .
(niefortunna konsekwencja Apple „ukrywanie” go jako zbiór zmiennych magicznych, myślę?)
Uwaga: to iOS tylko - IIRC na Mac masz bezpośredni dostęp do filtrów stosowanych do tworzenia cieni , dzięki czemu możesz tworzyć własne (dowolne) cienie ręcznie.
UPDATE:
pracowałem się, jak przycinać, aby pokazać tylko wewnętrzna część cieniu: ustawić „layer.mask”, aby być nowa warstwa, która jest klonem bieżącej warstwy (tj. ta sama ścieżka) i ustawić kolor wypełnienia ścieżki na cokolwiek z pełną alfa.
Jest to przeciwieństwo tego, co próbuję, więc gdybym mógł wymyślić sposób, aby uzyskać warstwę maski, aby odwrócić alfa (0 staje się 1, 1 staje się 0), będę tam ...
Próbowałem tego, ale nic nie stało się z moją warstwą, a ty nie zdefiniowałeś 'shadowBorderWidth'. Co to znaczy? –
Zmieniłem kod. Nie wiem, czy to jeszcze zadziała, prawdopodobnie będzie. Jeśli to nie działa, masz do wyboru dużo debugowania: metodę cloneShapeLayer, regułę zwijania w CGPath, oryginalną CGPath itd. Jest to bardzo zależne od TWOJEGO kodu źródłowego i SWOICH danych obrazu - Nie mogę tego debugować. – Adam
Dziękuję, spróbuję tego :) –