ios - MapKit - Change the Color/Stroke of a MKPolyline -


i have added overlay map follwing code:

func mapview(mapview: mkmapview!, rendererforoverlay overlay: mkoverlay!) -> mkoverlayrenderer! {     if overlay.iskindofclass(mkpolyline) {         // draw track          let polyline = overlay as! mkpolyline         let polylinerenderer = mkpolylinerenderer(overlay: polyline)         polylinerenderer.strokecolor = uicolor.bluecolor()         polylinerenderer.linewidth = 2.0         return polylinerenderer     }      return nil } 

now want change color or line width of polyline.
way found is:

func randommethod() {     ...// find apolyline     self.myoverlay = apolyline     self.map.removeoverlay(self.myoverlay)     self.map.addoverlay(self.myoverlay) } 

on mapview renderforoverlay method added this:

if (polyline == self.myoverlay) {    polylinerenderer.strokecolor = uicolor.redcolor()    polylinerenderer.linewidth = 5.0 }else{    polylinerenderer.strokecolor = uicolor.bluecolor()    polylinerenderer.linewidth = 2.0  } 

there has better way removing overlay , adding back.
know other way?

i don't think best solution found way of doing without removing/adding overlay.

i keep reference let polylinerenderer = mkpolylinerenderer(overlay: polyline) way on randommethod() can change properties need (stroke, linewidth) , execute setneedsdisplay() on renderer polyline.

is worst other approach? may be.. have add structure store renderers, way found...


Comments

Popular posts from this blog

javascript - How to process users in one specific order using map o each function? -

java - Two interface have same method name with different return type -

javascript - Linking from page A to a specific iframe on page B -