Я пытаюсь добавить непрозрачность к моему представлению. Когда я добавляю CAGradientlayer, я грубо понимаю, что я планировал, но имею несколько проблем.CAGradientLayer Mask добавить непрозрачность в Swift
- Я не могу изменить цвет. Независимо от того, какие значения я использую, я всегда получаю белый слой
- Хотя я хотел, чтобы он был распределен по всему виду, похоже, что он имеет смещение влево.
Мой код выглядит следующим образом:
let maskLayer = CAGradientLayer()
maskLayer.anchorPoint = CGPoint(x: 0.0, y: 0.0)
maskLayer.startPoint = CGPoint(x: 0.0, y: 0.5)
maskLayer.endPoint = CGPoint(x: 1.0, y: 0.5)
maskLayer.colors = [UIColor(white: 0.0, alpha: 0.0).CGColor, UIColor(white: 1.0, alpha: 1.0).CGColor, UIColor(white: 0.0, alpha: 0.0).CGColor]
maskLayer.locations = [0.0, 0.5, 1.0]
maskLayer.bounds = CGRectMake(0, 0, self.frame.width, self.frame.height)
self.layer.mask = maskLayer
Что я делаю неправильно?
Благодаря
Спасибо за очистку. Когда я применяю layoutSubviews, как предлагается в вашей ссылке, он очищает смещение влево и добавляет его вместо этого. – Jan
Не могли бы вы показать реализацию layoutSubviews? – Clafou
переопределения функ layoutSubviews() { lineLayer.frame = self.bounds super.layoutSubviews()}, где lineLayer является CALayer, который добавляется в качестве подвида – Jan