googlemaps / google-maps-ios-utils

Google Maps SDK for iOS Utility Library
https://developers.google.com/maps/documentation/ios-sdk/utility/
Apache License 2.0
716 stars 406 forks source link

map flickering issue #434

Open CMiOSDeeplink opened 1 year ago

CMiOSDeeplink commented 1 year ago

When the page was idle, the map was flickering on a black background.

Also, it is inserted inside the TableView cell.

version :'GoogleMaps', '7.3.0'

Code example

    mapContainerView.subviews.first?.removeFromSuperview()
    // Set up map view
    let mapView = GMSMapView()

    addSelectionMarker(forMapView: mapView, location: location)

    // Disable all maps controls
    mapView.settings.indoorPicker = false
    mapView.settings.compassButton = false
    mapView.settings.myLocationButton = false
    mapView.settings.setAllGesturesEnabled(false)

    // Add mapview to container
    mapView.translatesAutoresizingMaskIntoConstraints = false
    mapContainerView.addSubview(mapView)
    let views = ["mapView": mapView]
    var constraints = [NSLayoutConstraint]()
    constraints.append(contentsOf: NSLayoutConstraint.constraints(withVisualFormat: "H:|[mapView]|",
                                                                  options: .alignAllCenterX,
                                                                  metrics: nil,
                                                                  views: views))
    constraints.append(contentsOf: NSLayoutConstraint.constraints(withVisualFormat: "V:|[mapView]|",
                                                                  options: .alignAllCenterX,
                                                                  metrics: nil,
                                                                  views: views))
    mapContainerView.addConstraints(constraints)
    mapView.setNeedsLayout()
    mapView.layoutIfNeeded()

    func addSelectionMarker(forMapView mapView: GMSMapView,
                        location: CMStoreLocation) {
    let marker = GMSMarker()
    let storeLocation = CLLocationCoordinate2DMake(location.lat,
                                                   location.lon)
    marker.position = storeLocation
    marker.icon = UIImage(named: "location_cmgreen")
    marker.map = mapView
    mapView.animate(toLocation: storeLocation)
    mapView.animate(toZoom: googleMapsDefaultZoomScale)
}

Thanks! IMG_20230221_123052

wangela commented 1 year ago

If you would like to upvote the priority of this issue, please comment below or react with :+1: so we can see what is popular when we triage.

@CMiOSDeeplink Thank you for opening this issue. 🙏 Please check out these other resources that might help you get to a resolution in the meantime:

This is an automated message, feel free to ignore.