• Stars
    star
    139
  • Rank 262,954 (Top 6 %)
  • Language
    Swift
  • License
    MIT License
  • Created over 8 years ago
  • Updated about 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Renders MKPolyline with a fancy multicoloured gradient fill

GradientPathRenderer

Renders MKPolyline with a fancy multicoloured gradient fill similar to the Nike + Running App. A drop in replacement for MKPolylineRenderer, supports multiple colour stops and an optional border.

Installation

  1. Add GradientPathRenderer.swift to your project
  2. Inside rendererForOverlay delegate method, use GradientPathRenderer as you would an MKPolyLineRenderer
func mapView(mapView: MKMapView, rendererForOverlay overlay: MKOverlay) -> MKOverlayRenderer {
    if let overlay = overlay as? MKPolyline {
            /// define a list of colors you want in your gradient
            let gradientColors = [UIColor.green, UIColor.blue, UIColor.yellow, UIColor.red]

            /// Initialise a GradientPathRenderer with the colors
            let polylineRenderer = GradientPathRenderer(polyline: overlay, colors: gradientColors)

            /// set a linewidth
            polylineRenderer.lineWidth = 7
            return polylineRenderer
    }
}
  1. Optionally include border and borderColor variables to render a border on the polyline
polylineRenderer.border = true
polylineRenderer.borderColor = UIColor.red /* defaults to white if not specified*/