У меня есть маркер кластера в методе markerInfoWindow (https://developers.google.com/maps/documentation/ios-sdk/reference/protocol_g_m_s_map_view_delegate-p)
Когда маркер выбран и в заголовке маркера написано «Скоро в продаже», непрозрачность маркера становится 0,5.
изображение здесь Моя проблема в том, что я хочу, чтобы непрозрачность этого маркера была 0,5, когда он не выбран, а не только в выделении. Но я не могу найти для этого общедоступный метод. Может ли кто-нибудь помочь?





Вам нужно создать собственный класс, унаследованный от GMUClusterItem, например
/// Cluster Item
class EVPOIItem : GMUClusterItem{
init(icon : UIImage) {
self.icon = icon
}
}
после этого с помощью GMUClusterRendererDelegate вы можете изменить значок маркера и другие обновления, например
extension ViewController : GMUClusterRendererDelegate{
func renderer(_ renderer: GMUClusterRenderer, willRenderMarker marker: GMSMarker) {
if (marker.userData! is EVPOIItem) {
let customClusterItem = (marker.userData! as! EVPOIItem)
marker.icon = customClusterItem.icon
}
}
дайте мне знать, если у вас есть сомнения.
Извините, я создал класс POitem для markerInfoWindow, который поступает из файла .xib ... Поэтому я попробую ваш способ выше
Наконец то работает ..! Я выполнил шаги второго ответа, реализующего MarkerManager.h из этого вопроса stackoverflow.com/questions/38547622/…
Я создал класс POitem, и он уже работает. Проблема в том, что func mapView (_ mapView: GMSMarker, markerInfoWindow marker: GMSMarker) -> UIView {только для выбранного маркера ... мне нужна функция, такая как didShowMarker или что-то в этом роде .. так что я могу вызвать здесь marker.icon и сделать непрозрачность 0,5, если в названии написано "Скоро в продаже"