2016-03-06 4 views
0

У меня есть много разных изображений в фиде, это должно выглядеть так: http://s014.radikal.ru/i327/1603/14/97b12afe691f.png В Sketch это делается маской с радиальным градиентом. Так что я попробовал этот путь, но:Радиальный градиент с изображением IOS

если я добавить слой с градиентом выше, изображение не является прозрачным

если я перерисовывать изображение с кварцем - я получаю лаги и не прозрачно, как это должно быть

Я знаю, что это должно быть легко. Действительно легко. Пожалуйста, кто-нибудь, дай мне ключ! Вот мой градиент:

let colors: [CGFloat] = [ 88/255, 176/255, 113/255, 0.64, 90/255, 125/255, 113/255, 0.17, 88/255, 92/255, 110/255, 0.01] 
let gradient = CGGradientCreateWithColorComponents(baseSpace, colors, [0.0, 0.7, 0.85], 3) 
CGContextDrawRadialGradient(context, gradient, center, 10, center, self.size.width/2, .DrawsAfterEndLocation) 

ответ

0

Создать CALayer тот же размер, как ваш образ. Нарисуйте свой градиент в изображение и установите CGImage в качестве содержимого слоя. Они сделают слой маской слоя вашего изображения.

Взгляните на мою запись в блоге разработки ImageViewWithMask для рабочего примера использования слоев маски в Swift. (В моем примере я использую CAShapeLayer для рисования жесткой маски. Вам нужно будет адаптировать его для использования градиента).

должен быть способен использовать CAGradientLayer, но они не похожи на радиальные градиенты. Они имеют свойство типа градиента, но единственный поддерживаемый тип кажется Axial, что глупо.

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