簡體   English   中英

將淡化效果應用於UICollectionView的頂部和底部

[英]Apply fade effect to top and bottom of UICollectionView

我在這里閱讀了一些示例,但是我無法按照自己的意願進行操作,因此我的漸變示例卡在了屏幕的中間,無法按預期工作。

我有一個UICollectionView用垂直滾動填充整個屏幕。

我希望UICollectionView的頂部和底部是黑色的,中間是透明的(因為我使用的是blackblackgroundColor)。

我嘗試應用漸變,但是以某種方式無法完成我想要的。

這是我的代碼:

let gradient = CAGradientLayer()
gradient.frame = view.bounds
gradient.colors = [UIColor.black.cgColor, UIColor.clear.cgColor, UIColor.black.cgColor]
gradient.startPoint = CGPoint(x: 1, y: 0)
gradient.endPoint = CGPoint(x: 1, y: 1)
view.layer.mask = gradient

上面的代碼將漸變放置在屏幕中間,但倒置了。 如果淡出全黑,則在屏幕的頂部和底部以及中間部分是透明的。

我正在嘗試創建類似這樣的東西:

img

感謝您的幫助

您可以通過更改顏色線來實現這一點:

gradient.colors = [
    UIColor(white: 1.0, alpha: 0).cgColor,
    UIColor(white: 1.0, alpha: 1).cgColor,
    UIColor(white: 1.0, alpha: 0).cgColor
]

或者,如果您想進一步控制漸變,還可以使用下面的代碼並嘗試使用位置和/或顏色alpha值:

let gradient = CAGradientLayer()
gradient.frame = view.bounds
gradient.colors = [
    UIColor(white: 1, alpha: 0).cgColor,
    UIColor(white: 1, alpha: 1).cgColor,
    UIColor(white: 1, alpha: 1).cgColor,
    UIColor(white: 1, alpha: 0).cgColor
]
gradient.locations = [0, 0.4, 0.6, 1]
view.layer.mask = gradient

來自文檔的原因;

一個可選的圖層,其Alpha通道用於掩蓋該圖層的內容。

圖層的Alpha通道確定顯示多少圖層內容和背景。 完全或部分不透明的像素允許基礎內容通過顯示,但完全透明的像素會阻止該內容。

暫無
暫無

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

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