对于UIView透明渐变显示

___冬瓜
  • 33

有这么一个关于用户体验的需求,我想把一个自定义的View显示的时候达到从中间向左右两侧alpha值逐渐减小(即透明度逐渐增加)的效果。类似下图这种文字消失的感觉:

图片描述

这里是MarqueeLabel类库中实现的效果,其原理大概是利用了CALayer中的mask遮罩,但是自己从来没有接触过,求大神讲解改效果是如何实现的。

回复
阅读 10.5k
1 个回答
脑脑脑脑脑补大王
  • 352
✓ 已被采纳

用一个:CAGradientLayer() 设置好渐变内容及方向
注意:渐变头尾都是clearColor(),中间可以随意,不透明即可。
这个例子中,可以是这样:
位置:[0, 0.05, 1]
颜色:[clearColor, whiteColor, whiteColor]
起始点:[0,0.5] -> [1,0.5] 表示
自定的UILabel或者View,添加设置 layer.mask = gradientLayer 即可

宣传栏