Симуляторы iOS не отображают слой как реальное устройство - PullRequest
0 голосов
/ 19 марта 2019

В моем приложении для iOS я использую представление Google Maps с GMSLayer, прозрачность корректно отображается на реальном устройстве, но на симуляторе фон белый, я не могу сделать скриншоты для App Store ...

On Simulator (iPhone XR) On real device

И вот код, который я использую:

// Implement GMSTileURLConstructor
    // Returns a Tile based on the x,y,zoom coordinates, and the requested floor

    let urls: GMSTileURLConstructor = {(x, y, zoom) in
        let url = "http://wxs.ign.fr/[KEY]/geoportail/wmts?LAYER=TRANSPORTS.DRONES.RESTRICTIONS&FORMAT=image/png&SERVICE=WMTS&VERSION=1.0.0&REQUEST=GetTile&STYLE=normal&TILEMATRIXSET=PM&TILEMATRIX=" + String(zoom) + "&TILEROW="+String(y)+"&TILECOL="+String(x)
        return URL(string: url)
    }

    // Create the GMSTileLayer

    let layer = GMSURLTileLayer(urlConstructor: urls)

    layer.zIndex = 0
    layer.map = mapView

class TestTileLayer: GMSSyncTileLayer {
override func tileFor(x: UInt, y: UInt, zoom: UInt) -> UIImage {

    let url = URL(string : "http://wxs.ign.fr/[KEY]/geoportail/wmts?LAYER=TRANSPORTS.DRONES.RESTRICTIONS&FORMAT=image/png&SERVICE=WMTS&VERSION=1.0.0&REQUEST=GetTile&STYLE=normal&TILEMATRIXSET=PM&TILEMATRIX=" + String(zoom) + "&TILEROW="+String(y)+"&TILECOL="+String(x))

    return UIImage(data: try! Data(contentsOf: url!))!
}
}

Я уверен, что изображение, указанное в URL-адресе, использует прозрачность, и я пытался вручную изменить белый пиксель на прозрачный, но это ничего не меняет ...

1 Ответ

1 голос
/ 19 марта 2019

Это проблема симулятора, о которой уже упоминалось здесь .

Однако, как @ a.munzer предложил немного поработать, вы можете сделать скриншот с реального устройства и просто отредактировать его, не должно быть такой большой проблемой.

...