2017-03-25 1 views
0

Ich versuche, einen Gradienten auf meiner Kartenansicht hinzuzufügen, aber nichts passiert. Mache ich es richtig?Warum kann ich in der Kartenansicht keinen Farbverlauf hinzufügen?

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) 
+0

Wo ist dieser Code? Sind Sie sicher, dass der Rahmen der Kartenansicht zu diesem Zeitpunkt korrekt ist? Versuchen Sie, die Ebene vorne anstatt hinten hinzuzufügen, um sicherzustellen, dass sie zuerst funktioniert. – rmaddy

Antwort

0

CAGradientLayer Farben sind CGColors, nicht UIColors ...

gradientLayer.colors = [UIColor.black.cgColor, UIColor.blue.cgColor, UIColor.yellow.cgColor] 
+0

Ich versuchte das, zeigt immer noch nicht – joethemow

+0

hmmm ... vielleicht versuchen 'self.mapView.layer.addSublayer (gradientLayer)' – DonMag

+0

Aktualisiert den Code, immer noch nichts – joethemow

1

Drei Dinge:

  • die CGColor Ausgabe DonMag erwähnt
  • Sie am unteren Rand der Unterschicht sind Einfügen der Hierarchie der Kartenansicht - wenn sie andere Sublayer hat (was sie tut), werden sie oben auf Ihrer Gradientenebene angezeigt. Um dies zu beheben, verwenden Sie addSublayer(gradientLayer) statt insertSublayer(etc.).
  • sollten Sie die Kartenansicht der unter Verwendung bounds, nicht seine frame -wenn die die Kartenansicht als irgendwo anders positioniert (0,0), dann wird die Gradientenschicht im Inneren ausgeglichen werden
+0

Ich habe meinen Code mit Ihren Empfehlungen aktualisiert, funktioniert aber immer noch nicht. – joethemow

Verwandte Themen