我正在尝试在地图视图上添加渐变,但是没有任何反应。我做得对吗?

let gradientLayer = CAGradientLayer()
    gradientLayer.bounds = mapView.bounds
    gradientLayer.colors = [UIColor.black.cgColor, UIColor.blue.cgColor, UIColor.yellow.cgColor]
    gradientLayer.startPoint = CGPoint(x: 0, y: 0)
    gradientLayer.endPoint = CGPoint(x: 0, y: 1)
    self.mapView.layer.addSublayer(gradientLayer)

最佳答案

三件事:

  • CGColor问题DonMag提到了
  • 您将在地图视图层次结构的底部插入子层-如果它具有其他任何子层(确实如此),它们将显示在渐变层的顶部。要解决此问题,请使用addSublayer(gradientLayer)而不是insertSublayer(etc.)
  • 您应该使用地图视图的bounds而不是其frame —如果地图视图位于(0,0)以外的任何位置,则渐变层将在其中偏移
  • 关于ios - 为什么不能在 map View 上添加渐变?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43022935/

    10-10 20:48