簡體   English   中英

使用CAGradientLayer進行角度/圓度漸變

[英]Using CAGradientLayer for an angle / circle gradient

如何使用CAGradientLayer最有效地圍繞圓/角度繪制漸變?

在這個項目的幫助下,我在下面做了一個。 它使用位圖上下文進行繪制,但CAGradientLayer效率更高。

不幸的是,我只能弄清楚如何用它來制作線性漸變。

漸變層目前僅支持線性漸變。 但是,如果查看漸變圖層的界面,則它包含一個type屬性。 現在唯一定義的類型是kCAGradientLayerAxial(linear)。

有一個類型屬性的事實表明Apple將在未來某個日期添加更多類型,並且徑向漸變看起來像一個非常類似的添加。

您可以考慮創建自己的CAGradientLayer自定義子類,它繪制徑向漸變和線性漸變。 我在網上看過創建自定義CALayer子類的演示項目。

我發現這個問題被問到已經過了很多年了,但對於現在偶然發現它的人來說,iOS 12增加了一個圓錐漸變類型,使這成為可能。

gradientLayer.type = CAGradientLayerType.conic
gradientLayer.frame = bounds
gradientLayer.colors = [startColor.cgColor, endColor.cgColor]
gradientLayer.startPoint = CGPoint(x: 0.5, y: 0.5)
gradientLayer.endPoint = CGPoint(x: 0.5, y: 0)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM