iOS模拟器不会将图层渲染为真实设备

时间:2019-03-19 08:24:37

标签: ios swift xcode simulator

在我的iOS应用上,我使用了带有GMSLayer的Google Maps视图,透明效果在真实设备上正确呈现,但是模拟器上的背景为白色,我无法为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 个答案:

答案 0 :(得分:1)

只有here提到过,这是一个模拟器问题。

不过,正如@ a.munzer建议的那样,您可以采取一些措施来从真实设备中截取屏幕截图并进行编辑,这并不是什么大问题。