繁体   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