淡出滚动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图像