【问题标题】:Set custom accessibilityIdentifier for GMSMarker为 GMSMarker 设置自定义可访问性标识符
【发布时间】:2017-02-06 05:21:53
【问题描述】:

我将 Google Maps Api 用于地图和标记。

我通过设置启用标记的可访问性:mapView.accessibilityElementsHidden = false

现在我在地图上的所有自定义标记都有可访问性 ID,例如:myappname.GMSPlaceMarker_somenumbers,例如 myappname.GMSPlaceMarker_0x600000170200

我如何为所有引脚设置一个accessibilityIdentifier,例如Map pin

我已经试过了:

  • marker.accessibilityLabel = "Map pin" 但它设置了 label 值,而不是 id
  • marker.title = "Map pin" 没有任何变化
  • marker.setValue("Map pin", forKey: "accessibilityIdentifier") 没有任何变化

我的markerlet marker = GMSPlaceMarker() 其中class GMSPlaceMarker: GMSMarker

【问题讨论】:

  • 你找到设置标记的accessibilityidentifier的方法了吗?

标签: swift google-maps-sdk-ios


【解决方案1】:

试试这个,

func markPoints() {
    var annotationCoord : CLLocationCoordinate2D = CLLocationCoordinate2D()
    annotationCoord.latitude = (selectedLocation.latitude as NSString).doubleValue
    annotationCoord.longitude = (selectedLocation.longitude as NSString).doubleValue

    let annotationPoint: MKPointAnnotation = MKPointAnnotation()
    annotationPoint.coordinate = annotationCoord
    annotationPoint.title = selectedLocation.name
    annotationPoint.subtitle = "Anand: 7348858742"
    theMap.addAnnotation(annotationPoint)
}

【讨论】:

  • 您需要提供一些描述以及代码
  • 无障碍ID在哪里?
【解决方案2】:

如果您使用的是 swift 4 试试这个,

    var destionationMarker: GMSMarker!

    func setupDriverMarker(coordinate: CLLocationCoordinate2D) {            
        destionationMarker = GMSMarker(position: coordinate)
        for pin: GMSMarker in self.DestinationMarkerArray {
            if pin.userData as! String == "drivermarker" {
                pin.map = nil
            }
        }            
        destionationMarker.title = "Your Title"
        destionationMarker.appearAnimation = GMSMarkerAnimation.pop
        let images = #imageLiteral(resourceName: "ic_map_marker")
        destionationMarker.icon = images
        destionationMarker.userData = "drivermarker"
        destionationMarker.opacity = 1
        destionationMarker.map = journeyMapView

    }

这样实现

DriverLocation = CLLocationCoordinate2D(latitude: 21.2362546, longitude: 72.8751862)
setupDriverMarker(coordinate: DriverLocation)

【讨论】:

    【解决方案3】:

    我也有类似的问题,GMSMarker 没有accessibilityIdentifier。我做了什么,将accessibilityIdentifier设置为icon或iconView,例如:

    marker.icon?.accessibilityIdentifier = "something" or
    marker.iconView?.accessibilityIdentifier = "something"
    

    【讨论】:

      猜你喜欢
      • 2019-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-11
      • 2020-06-23
      • 1970-01-01
      • 2013-12-30
      • 2021-01-29
      相关资源
      最近更新 更多