【问题标题】:Gradient Layer at the bottom of UITextviewUITextview 底部的渐变层
【发布时间】:2014-03-15 23:31:13
【问题描述】:

我怎样才能在 iOS UITextView 中获得相同的效果,如下图所示。 UITextView底部的模糊效果

在此先感谢 :)

【问题讨论】:

    标签: ios ios5 ios7 uitextview


    【解决方案1】:

    尝试以下操作:我尝试了以下操作,但不是 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。另外...交换渐变的开始和结束颜色。 其实,如果我更新你的答案,请不要介意。
    • 没问题。某种程度上,我们的回答会帮助其他人。感谢您的更正:)
    【解决方案2】:

    只需在文本视图的底部放置一个包含从清晰到白色的渐变图像的 UIImageView。我猜这是最简单的方法。

    【讨论】:

    • 我想要没有 UIImageview ,使用 CALayer[不确定]
    【解决方案3】:
    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)
    

    【讨论】:

      【解决方案4】:

      上面@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)
      

      【讨论】:

        猜你喜欢
        • 2020-11-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-10
        • 1970-01-01
        相关资源
        最近更新 更多