iOS Swift GMSMarker не удаляет

Я использую карты Google и пытаюсь удалить маркер.

Я использую marker.map = nil, как говорит руководство. Но маркер остается там..

Я не могу использовать map.clear(), потому что не хочу все потерять...

Любой совет?

/// Hide all the markers
    func hideMarkers() {
        let events = viewModel.events
        for event in events {
            event.marker?.map = nil
        }
    }

person Andrea Miotto    schedule 04.03.2018    source источник
comment
В принципе вроде правильно. Пожалуйста, опубликуйте больше кода   -  person kuzdu    schedule 04.03.2018
comment
добавлена ​​функция скрытия событий   -  person Andrea Miotto    schedule 04.03.2018
comment
В чем разница между Google mapView.clear() и вашим hideMarkers()? У маркера есть карта? Где вы инициализируете события маркерами?   -  person kuzdu    schedule 04.03.2018
comment
разница в том, что clear() также удаляет плитки   -  person Andrea Miotto    schedule 04.03.2018
comment
Тогда вы должны поделиться дополнительным кодом, иначе я не могу помочь.   -  person kuzdu    schedule 04.03.2018


Ответы (1)


Официальный документ https://developers.google.com/maps/documentation/ios-sdk/marker?hl=en

Если вы хотите внести изменения в маркер после его добавления на карту, убедитесь, что вы сохранили объект GMSMarker. Вы можете изменить маркер позже, внеся изменения в этот объект.

let marker = GMSMarker(position: position)
marker.map = mapView
marker.map = nil

Итак, у вас есть ссылка на ваш маркер. Я полагаю, что вы не работаете над своим маркером.

Уродливым способом было бы вызвать mapView.clear() и повторно добавить все ваши маркеры.

person kuzdu    schedule 04.03.2018
comment
Да, это правда. Но я проверил то, что он сделал, и это работает. Значит, у его проблемы другая причина. Кроме того, я даю ему альтернативу. Какова твоя точка зрения? - person kuzdu; 14.08.2018
comment
Этот ответ не является ответом, поскольку он имеет тот же код, что и OP в своем вопросе, а метод clear() относится к области комментариев, которая также существует. - person OhadM; 14.08.2018
comment
Я не согласен с этим. Никто не знает, работает ли код вопросов. Комментарии от меня, и для лучшего обзора я разместил этот ответ. Но спасибо за ваш отзыв, в следующий раз я дважды подумаю, имеет ли мой ответ дополнительную ценность. Если это вас сильно беспокоит, не стесняйтесь поставить мне минус. - person kuzdu; 14.08.2018