2016-12-07 2 views
0

У меня есть требование добавления градиента над некоторой частью (только в левой и правой части) UIImageView. Я знаю, это можно сделать с помощью CAGradientLayer(). Но меня путают со свойствами и цветами.Эффект градиента на некоторой части UIImageView

Ниже приведен мой код. Он добавляет градиент сверху и снизу.

if let containerView = imageView.superView { 
     let gradient = CAGradientLayer(layer: containerView.layer) 
     gradient.frame = containerView.bounds 
     gradient.colors = [UIColor.clear.cgColor, UIColor.blue.cgColor ,UIColor.blue.cgColor, UIColor.clear.cgColor] 
     gradient.locations = [0.0 , 0.25 , 0.85 , 1.0] 
     containerView.layer.mask = gradient 
    } 

Заранее спасибо

+0

Вы можете поделиться результатами этого кода? и что вы ожидаете? –

ответ

0

gradient.colors

gradient.colors свойство используется для определения цвета каждого градиента

Если вы смотрите в документации,

gradient.locations используется для определения градиента точек останова между вашими цветами

документации: Необязательный массив объектов NSNumber, определяющих местоположение каждого градиента остановки в качестве значения в диапазоне [0,1]

это вы ищете?

+0

Да, я видел документацию, но не смог догадаться, точное местоположение для левой и правой стороны. –

1

Вам нужно создать CAGradientLayer слой, как это и в любом представлении

let gradientLayer = CAGradientLayer() 
gradientLayer.frame = CGRectMake(0, 0,300, 380) 
gradientLayer.colors = [UIColor(red:55.0/255, green:149.0/255, blue:227.0/255, alpha:1.0).CGColor,UIColor(red:20.0/255, green:77.0/255, blue:120.0/255, alpha:1.0).CGColor] 
gradientLayer.startPoint = CGPoint(x: 0.0, y: 1.0) 
gradientLayer.endPoint = CGPoint(x: 1.0, y: 1.0) 
imgView.layer.insertSublayer(gradientLayer, atIndex: 0) 

для всех направлении, как top-buttom, left-right и наоборот просто вам нужно изменить startPoint И endPoint Выход выше код

enter image description here

+0

Выше кода добавляет градиент в нижней части вашего представления, но я хочу добавить градиент в левой и правой части моего представления. –

+0

нормально дать некоторое время IWill обновления этого –

+0

будет очень полезно для меня –

Смежные вопросы