淡出滚动UITextView的图像?

我正在寻找在背景图像上淡出滚动的UITextView ,类似于这个小例子顶部的渐变。

在这里输入图像说明

我正在试图找出如何使用CAGradientLayer和蒙版来实现这一点。 当视图中的文本(垂直)滚动时,我需要文本在它碰到视图的框架之前变得透明,从而给出它向上和向下淡出的错觉。

有关如何实现这一目标的任何提示?

哦,我用了很多。 把它保存为一个片段:

 CAGradientLayer *gradient = [CAGradientLayer layer]; gradient.frame = self.textView.superview.bounds; gradient.colors = @[(id)[UIColor clearColor].CGColor, (id)[UIColor blackColor].CGColor, (id)[UIColor blackColor].CGColor, (id)[UIColor clearColor].CGColor]; gradient.locations = @[@0.0, @0.03, @0.97, @1.0]; self.textView.superview.layer.mask = gradient; 

这个解决scheme要求你的文本视图embedded到自己的视图中。 这将在文本视图的顶部和底部应用3%的淡入淡出。 根据需要修改gradient.locations

我已经从这个线程的其他人的启发,但已经将代码转换为Swift,并使用开始和结束点,而不是在底部做一个渐变。

 if let containerView = textView.superview { let gradient = CAGradientLayer(layer: containerView.layer) gradient.frame = containerView.bounds gradient.colors = [UIColor.clearColor().CGColor, UIColor.blueColor().CGColor] gradient.startPoint = CGPoint(x: 0.0, y: 1.0) gradient.endPoint = CGPoint(x: 0.0, y: 0.85) containerView.layer.mask = gradient } 

请参阅: 带有渐变的textView图像