Swift4中如何添加虚线折线?已有折线如何设置为虚线样式?
在Swift4中给Google Maps折线设置虚线/点状线样式
嘿,你的两个问题其实可以用同一个方案解决——Google Maps SDK的GMSPolyline类提供了strokePattern属性,专门用来设置折线的虚线、点状线这类自定义样式。我直接给你修改好代码,再详细说说怎么调整样式:
修改后的完整代码
let path = GMSMutablePath(path: GMSPath()) for marker in markerList { bounds = bounds.includingCoordinate(marker.position) path.add(marker.position) } let polyline = GMSPolyline(path: path) polyline.strokeColor = UIColor(named: "Primary")! polyline.strokeWidth = 3.0 polyline.geodesic = true // 核心:设置虚线/点状线样式 // 数组元素交替代表「绘制长度」和「空白长度」,单位是point polyline.strokePattern = [NSNumber(value: 4), NSNumber(value: 2)] polyline.map = mapView
样式调整说明
strokePattern是一个[NSNumber]数组,数组里的数值是交替的实线段长度和空白段长度,单位是屏幕点(point):- 比如
[4,2]:先画4pt的实线,再留2pt的空白,循环这个模式就是标准的虚线。 - 想要点状线?把实线长度改小就行,比如
[1,3]:画1pt的小点,留3pt空白,重复后就是清晰的点状线。 - 更复杂的样式也能实现,比如长短线交替:
[8,2,2,2],对应“长8pt实线→空2pt→短2pt实线→空2pt”的循环。
- 比如
- 注意:
strokeWidth会影响虚线的粗细,宽度越大,虚线的线段也会越粗,记得根据需求搭配调整。
内容的提问来源于stack exchange,提问作者mohamed ibrahem
相关产品推荐
相关产品推荐

