簡體   English   中英

從黑色到完全透明的快速漸變

[英]Swift gradient from black to fully transparent

我正在嘗試使用 swift 應用 CAGradientLayer,我希望它從黑色淡入透明。

我認為用alpha: 0放置任何顏色都會呈現相同的“透明”顏色。 事實並非如此。 帶有alpha: 0白色仍然有點白,帶有alpha: 0的紅色仍然有點紅......

我不想要任何色調,只想要透明。 黑色不那么黑,以至於沒有顏色,例如,您可以完全看到它下面的視圖。

gradientLayer.colors = [UIColor(hex: 0x000000, alpha: 0.4).cgColor,
                        UIColor(hex: 0x6D6D6D, alpha: 0.3).cgColor,
                        UIColor.white.withAlphaComponent(0.0).cgColor]
gradientLayer.locations = [0.0, 0.3, 1.0]

如果我將圖層應用於灰色圖片,很容易看出它不是透明的而是白色的:

在此處輸入圖片說明

編輯 1:

gradientLayer.frame = self.gradientView.bounds
gradientLayer.masksToBounds = true
gradientLayer.colors = [UIColor.black.withAlphaComponent(1.0).cgColor, UIColor.black.withAlphaComponent(0.0).cgColor]
gradientLayer.locations = [0.0, 1.0]
gradientLayer.startPoint = CGPoint(x: 0.0, y: 0.0)
gradientLayer.endPoint = CGPoint(x: 0.0, y: 1.0)
self.gradientView.layer.addSublayer(gradientLayer)

輸出 :

在此處輸入圖片說明

你可以試試這個:

    gradientLayer.colors = [UIColor.black.withAlphaComponent(1.0).cgColor,
                            UIColor.black.withAlphaComponent(0.0).cgColor]
    //gradientLayer.locations = [0.0, 1.0]
    gradientLayer.frame = myView.bound
    gradientLayer.startPoint = CGPoint(x: 1.0, y: 0.0)
    gradientLayer.endPoint = CGPoint(x: 1.0, y: 1.0)
    myView.layer.insertSublayer(gradientLayer, at: 0)

它在我的情況下有效。

暫無
暫無

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

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