CAShapeLayer使用CGPathRef繪製它的東西。所以我有一條星星路徑,我想要一個半徑約15個單位的平滑陰影。在一些新的iPhone操作系統版本中可能有一些很好的功能,但我需要自己做一個老版本的3.0(大多數人仍在使用)。如何在iOS中繪製下拉陰影
我試圖做一些真正令人討厭的東西: 我創建了一個for循環,並按順序創建了15個這樣的路徑,逐步將它們變換爲更大。然後將它們分配給一個新創建的CAShapeLayer,並在每次迭代時減少它的alpha值。不僅如此,這種縮放在數學上不正確並且很糟糕(它應該發生在相對於輪廓的位置!),陰影不是圓形的,看起來非常醜陋。這就是爲什麼好的軟陰影有一個半徑。
明星的祕訣不應該出現的15個單位的陰影尺寸後完全尖銳。它們應該像奶油一樣柔軟。但在我醜陋的解決方案中,他們就像明星本身一樣豎琴,因爲我所做的只是將星星縮放15次,並將其減少15次。醜陋。
我不知道大傢伙是怎麼做的?如果你有一條任意路徑,那條路徑必須拋出一個陰影,算法如何工作?可能路徑必須被擴展30倍,相對於離開填充部分的輪廓的切線逐點增加,並且僅需0.5個單位就可以具有良好的混合。
我在重新發明輪子,也許有人有一個方便的例子或鏈接?
對於CGContextSetShadow,第二個參數應該是CGSize,如CGSizeMake(5,5) – 2011-05-06 20:29:15