【发布时间】:2014-03-15 23:31:13
【问题描述】:
我怎样才能在 iOS UITextView 中获得相同的效果,如下图所示。
UITextView底部的模糊效果
在此先感谢 :)
【问题讨论】:
标签: ios ios5 ios7 uitextview
我怎样才能在 iOS UITextView 中获得相同的效果,如下图所示。
UITextView底部的模糊效果
在此先感谢 :)
【问题讨论】:
标签: ios ios5 ios7 uitextview
尝试以下操作:我尝试了以下操作,但不是 UITextView
UIView *vwTest = [[UIView alloc] initWithFrame:_textView.frame];
[vwTest setBackgroundColor:[UIColor whiteColor]];
[vwTest setUserInteractionEnabled:NO];
[self.view addSubview:vwTest];
NSArray *colors = [NSArray arrayWithObjects:
(id)[[UIColor colorWithWhite:0 alpha:1] CGColor],
(id)[[UIColor colorWithWhite:0 alpha:0] CGColor],
nil];
CAGradientLayer *layer = [CAGradientLayer layer];
[layer setFrame:vwTest.bounds];
[layer setColors:colors];
[layer setStartPoint:CGPointMake(0.0f, 1.0f)];
[layer setEndPoint:CGPointMake(0.0f, 0.6f)];
[vwTest.layer setMask:layer];
【讨论】:
CAGradientLayer 肯定会这样做,但不会在 textView.layer 上。如果滚动,渐变会随之滚动。我会建议一个小的修改。在textView 上放置UIView 并屏蔽UIView。另外...交换渐变的开始和结束颜色。 其实,如果我更新你的答案,请不要介意。
只需在文本视图的底部放置一个包含从清晰到白色的渐变图像的 UIImageView。我猜这是最简单的方法。
【讨论】:
let gradientLayer: CAGradientLayer = CAGradientLayer()
gradientLayer.frame = CGRectMake(0.0, 0.0, CGRectGetWidth(textView.frame), CGRectGetHeight(textView.frame))
gradientLayer.colors = [UIColor.init(white: 1, alpha: 0).CGColor, UIColor.whiteColor().CGColor]
gradientLayer.startPoint = CGPointMake(0, 0.6)
gradientLayer.endPoint = CGPointMake(0.0, 1)
self.textview.layer.addSublayer(gradientLayer)
【讨论】:
上面@Charlie 的答案对我来说在 Swift 5.x 上不起作用,我不得不做出一些改变。
首先添加一个带有 UITextView 的 UIView。然后我确实像这样应用了calare:
let gradientLayer: CAGradientLayer = CAGradientLayer()
gradientLayer.frame = CGRect.init(x: 0.0, y: 0.0, width: textView.frame.width, height: textView.frame.height)
gradientLayer.colors = [UIColor.init(white: 1, alpha: 0).cgColor, UIColor.white.cgColor]
gradientLayer.startPoint = CGPoint.init(x: 0.0, y: 0.6)
gradientLayer.endPoint = CGPoint.init(x: 0.0, y: 1.0)
self.contentTextView.layer.addSublayer(gradientLayer)
【讨论】: