用渐变填充多个UIViews

Jam*_*son 6 gradient uiview uicolor swift

我有一个带有液体容器的杯子,由两个UIViews组成 - 一个用于液体的主体,另一个用于表面上的动画波.将液体容器掩盖成杯状.

在此输入图像描述

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

Iva*_*nov 0

如果我理解正确的话:

  • 您的主体液体视图和波浪视图将作为子视图添加到容器视图中。
  • 您已向该容器视图(liquidContainer)添加了一个遮罩
  • 然后您已将 LiquidContainer 添加到另一个主视图,其中也将杯子作为子视图

在此输入图像描述

如果是这种情况,您可以尝试将 a 添加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)
Run Code Online (Sandbox Code Playgroud)

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