Новый GMSMapView не работает, но старый GMSMapView загружается правильно

Когда я создаю новый GMSMapView, он не загружается. У меня есть другие GMSMapViews в моем проекте, которые загружаются правильно. Я использую редактор раскадровки, чтобы назначить пользовательский подкласс GMSMapView для UIView. Почему новые не работают?


person Derek Soike    schedule 20.02.2017    source источник


Ответы (1)


Я нашел решение этой проблемы, посмотрев исходный код моего файла раскадровки.

Мои старые GMSMapViews выглядели так:

<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" 
      id="hbm-BT-3Ow" customClass="GMSMapView">

Мои новые выглядели так:

<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" 
      id="alb-9Z-Vu8" customClass="GMSMapView" 
      customModule="{My Project Name}" customModuleProvider="target">

Когда я установил пользовательский класс в GMSMapView для нового UIView, связанный модуль был «мой проект», а не «нет», как это было раньше.

введите здесь описание изображения

Проблема заключалась в том, что я создал собственное расширение для GMSMapView в своем проекте.

extension GMSMapView {

    var visibleBounds: GMSCoordinateBounds {
        return GMSCoordinateBounds(region: self.projection.visibleRegion())
    }
}

Решение:

Изменение extension GMSMapView на extension GoogleMaps.GMSMapView устранило мою проблему.

person Derek Soike    schedule 20.02.2017