Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/96.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift谷歌地图-点击标记时如何移动屏幕底部的标记?_Ios_Swift_Google Maps - Fatal编程技术网

Ios Swift谷歌地图-点击标记时如何移动屏幕底部的标记?

Ios Swift谷歌地图-点击标记时如何移动屏幕底部的标记?,ios,swift,google-maps,Ios,Swift,Google Maps,我正在玩谷歌地图,我需要覆盖点击标记的默认行为——默认情况下,标记会出现在屏幕中央,信息窗口如上图所示。我需要找出一种方法,当标记被点击时,标记移动到屏幕底部,信息窗口显示在中间。我找到了解决办法,但我无法将其转化为swift 有什么帮助吗?添加GMSMapViewDelegate func mapView(mapView: GMSMapView!, didTapMarker marker: GMSMarker!) -> Bool { mapView.animateToLocat

我正在玩谷歌地图,我需要覆盖点击标记的默认行为——默认情况下,标记会出现在屏幕中央,信息窗口如上图所示。我需要找出一种方法,当标记被点击时,标记移动到屏幕底部,信息窗口显示在中间。我找到了解决办法,但我无法将其转化为swift


有什么帮助吗?

添加
GMSMapViewDelegate

func mapView(mapView: GMSMapView!, didTapMarker marker: GMSMarker!) -> Bool {

    mapView.animateToLocation(marker.position)
    mapView.selectedMarker = marker

    var point = mapView.projection.pointForCoordinate(marker.position)
    point.y = point.y - 200

    var newPoint = mapView.projection.coordinateForPoint(point)
    var camera = GMSCameraUpdate.setTarget(newPoint)
    mapView.animateWithCameraUpdate(camera)

    return true

}
 // move marker


   func updateLocationoordinates(coordinates:CLLocationCoordinate2D) {
        if marker == nil
        {
            marker = GMSMarker()
            marker.position = coordinates
            let image = UIImage(named:"destinationmarker")
            marker.icon = image
            marker.map = mapPageView
            marker.appearAnimation = GMSMarkerAnimation.pop
        }
        else
        {
            CATransaction.begin()
//            CATransaction.setAnimationDuration(0.1)
            marker.position =  coordinates
            CATransaction.commit()
        }
        print(coordinates)
    }
摄影机更改位置此方法每次都将调用

func mapView(_ mapView: GMSMapView, didChange position: GMSCameraPosition) {

    var destinationLocation = CLLocation()
    destinationLocation = CLLocation(latitude: position.target.latitude,  longitude: position.target.longitude)
    destinationCoordinate = destinationLocation.coordinate
    updateLocationoordinates(coordinates: destinationCoordinate)

}
祝你好运