2014-02-16 11 views

ответ

0

Просто поместите UIImageView, который содержит изображение градиента от прозрачного до белого цвета на верхней части нижней части представления текста. Это самый простой способ, я думаю.

+0

Я хочу без UIImageView, что-то с помощью CALayer [не уверен] – DAMM108

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]; 
+0

'CAGradientLayer' будет делать это точно, но не на 'textView.layer'. Если вы прокрутите список, градиент прокручивается вместе с ним. Я бы предложил небольшую модификацию. Поместите 'UIView' над' textView' и замаскируйте 'UIView'. Также ... поменяйте начальный и конечный цвет градиента. На самом деле, не возражаете, если я обновляю ваш ответ. – staticVoidMan

+0

Нет проблем. Некоторые, как, наш ответ помогли бы другим. Спасибо за исправление :) –

0
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)