当前位置: 首页 > 面试题库 >

如何将渐变应用于iOS Swift App的背景视图

越昊穹
2023-03-14
问题内容

我正在尝试将渐变用作视图(情节提要的主视图)的背景颜色。该代码运行,但没有任何变化。我正在使用xCode Beta 2和Swift。

这是代码:

class Colors {
  let colorTop = UIColor(red: 192.0/255.0, green: 38.0/255.0, blue: 42.0/255.0, alpha: 1.0)
  let colorBottom = UIColor(red: 35.0/255.0, green: 2.0/255.0, blue: 2.0/255.0, alpha: 1.0)

  let gl: CAGradientLayer

  init() {
    gl = CAGradientLayer()
    gl.colors = [ colorTop, colorBottom]
    gl.locations = [ 0.0, 1.0]
  }
}

然后在视图控制器中:

  let colors = Colors()

  func refresh() {
        view.backgroundColor = UIColor.clearColor()
        var backgroundLayer = colors.gl
        backgroundLayer.frame = view.frame
        view.layer.insertSublayer(backgroundLayer, atIndex: 0)
      }
    }
  }

问题答案:

您要提供给渐变的颜色必须为类型CGColor。因此,将您的数组设置CGColorgl.colors

正确的代码是:

class Colors {
    var gl:CAGradientLayer!

    init() {
        let colorTop = UIColor(red: 192.0 / 255.0, green: 38.0 / 255.0, blue: 42.0 / 255.0, alpha: 1.0).cgColor
        let colorBottom = UIColor(red: 35.0 / 255.0, green: 2.0 / 255.0, blue: 2.0 / 255.0, alpha: 1.0).cgColor

        self.gl = CAGradientLayer()
        self.gl.colors = [colorTop, colorBottom]
        self.gl.locations = [0.0, 1.0]
    }
}


 类似资料:
  • 渐变背景也是CSS3 的新特性,通过它可以在不使用图像的情况下,创建从一种颜色到另一种颜色的过渡。使用渐变的好处是,可以减少对图像的依赖,进而降低浏览网页时的带宽消耗,提高网站的访问速度。 渐变,就是两种或多种颜色之间的平滑过渡。在创建渐变时,可以指定多个中间颜色值,这些值称为色标。每个色标包含一种颜色和一个位置,浏览器自动从一个色标的颜色,平滑过渡到下一个色标的颜色。 在CSS3中,只需将 ba

  • 我想知道如何使背景渐变,这是在另一个J面板。在互联网上找到了许多文章,但他们都演示了如何覆盖J面板的画质组件(),而不是如何为它里面的j面板做。 我使用Netbean IDE。我创建了一个新的J面板类,可以覆盖它的画质组件()。我在上面有另一个j面板(拖 这是我为父母尝试的方式。成功了。我怎样才能为子 jpanel 覆盖它?

  • 如图所示,渐变背景倾斜平铺

  • 我想创建渐变背景,渐变在上半部分,下半部分是纯色,如下图所示: 我不能,因为展开覆盖底部和顶部。 我怎样才能制作出像第一张图片一样的背景呢?如何制作不展开的小型? 这是上面背景按钮的XML代码。

  • 问题内容: 我一直在尝试产生基本的径向渐变背景,但没有成功。我设法获得了线性渐变,如下面的代码所示,但是我不知道如何使用不同的颜色使其呈放射状- 如下图所示。任何帮助将不胜感激。:) 问题答案: 看看我的RadialGradientLayer的实现,可以随时对其进行修改 就我而言,我只需要使用两种颜色,如果需要更多颜色,则需要修改中声明的数组。同样,在从此类创建对象之后,请不要忘记调用它,否则它将

  • 问题内容: 我一直在尝试在背景图片的顶部使用线性渐变,以使背景底部的阴影效果从黑色变为透明,但似乎无法使其显示。 我在这里阅读了其他案例和示例,但没有一个对我有用。我只能看到渐变或图像,但不能全部看到。 只需单击第一个徽标,就忽略该效果,此后我要尝试的是整个网站的正文。 这是我的CSS代码: 问题答案: 好的,我通过 在行尾 添加背景图片的网址来解决此问题。 这是我的工作代码: