Ios 将淡入淡出效果应用于UICollectionView的顶部和底部

Ios 将淡入淡出效果应用于UICollectionView的顶部和底部,ios,swift,uicollectionview,calayer,Ios,Swift,Uicollectionview,Calayer,我在这里读过一些例子,但是我不能按照我想要的方式来做,不知怎么的,我的渐变例子被卡在了屏幕的中间,没有按预期的那样工作 我有一个UICollectionView,它用垂直滚动条填满了整个屏幕 我希望UICollectionView的顶部和底部是黑色,中间是透明的(因为我使用的是黑色底色) 我试着应用梯度,但不知怎么的,我没能达到我想要的 这是我的密码: let gradient = CAGradientLayer() gradient.frame = view.bounds gradient.c

我在这里读过一些例子,但是我不能按照我想要的方式来做,不知怎么的,我的渐变例子被卡在了屏幕的中间,没有按预期的那样工作

我有一个
UICollectionView
,它用垂直滚动条填满了整个屏幕

我希望
UICollectionView
的顶部和底部是黑色,中间是透明的(因为我使用的是黑色底色)

我试着应用梯度,但不知怎么的,我没能达到我想要的

这是我的密码:

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
<>上述代码将渐变放在屏幕中间,但反转。如果褪色至完全黑色,屏幕顶部和底部以及中间部分是透明的

我正在尝试创建如下内容:


感谢您的帮助

您可以通过以下方法更改颜色线来实现:

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通道确定层的内容和背景的显示量。完全或部分不透明的像素允许底层内容显示,但完全透明的像素会阻止该内容