Заполнить несколько UIViews градиентом - PullRequest
0 голосов
/ 03 декабря 2018

У меня есть чашка с контейнером с жидкостью, состоящая из двух UIViews - один для основного тела жидкости, а другой для анимированной волны на поверхности.Контейнер для жидкости замаскирован в форме чашки.

enter image description here

Есть ли способ, которым я могу заполнить как первичную жидкость, так и вид волн одним цветом (предпочтительноградиент) чтобы эффективно слить их?Можно ли это сделать с помощью другой маски?

1 Ответ

0 голосов
/ 14 декабря 2018

Если я правильно понял:

  • ваше жидкостное представление основного тела и волновое представление добавляются как подпредставления к представлению контейнера.
  • вы добавили маску к этому виду контейнера (liquidContainer)
  • затем вы добавили liquidContainer к другому основному виду, где у вас также есть чашка в качестве подпредставления

enter image description here

В этом случае вы можете попробовать добавить CAGradientLayer к слою представления контейнера в качестве подслоя:

    let gradient = CAGradientLayer()

    gradient.startPoint = someStartPoint
    gradient.endPoint = someEndPoint
    gradient.frame = someFrame
    gradient.colors = someColorsArray //note that it uses CGColor if you use UIColor it won't work
    liquidContainerView.layer.addSublayer(gradient)

ЕслиЯ неправильно понял вашу иерархию представлений, почему бы не попытаться воспроизвести эту иерархию в вашей настройке и посмотреть, работает ли она.

...