用渐变填充多个UIView

时间:2018-12-03 13:44:08

标签: swift uiview gradient uicolor

我有一个装有液体容器的杯子,它由两个UIView组成-一个用于液体主体,一个用于表面上的动画波。液体容器被遮盖成杯子形状。

enter image description here

有什么方法可以用一种颜色(最好是渐变色)填充主液体和波状视图以有效地合并它们?可以用另一个口罩做吗?

1 个答案:

答案 0 :(得分:0)

如果我正确理解:

  • 您的主体液体视图和波浪视图将作为子视图添加到容器视图。
  • 您已向该容器视图(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)

如果我误解了您的视图层次结构,为什么不尝试在您的设置中重现该层次结构并查看它是否有效。