2017-05-15 1 views
0

확대/축소 수준에 따라 내 마커의 크기를 조정할 수 있기를 원합니다. 이 코드는 이미지의 크기를 조정했지만 아이콘을 고정적으로 유지합니다. 나는 등을 구현확대/축소 수준에 따른 눈금 맞춤 표식

func imageWithImage(image:UIImage, scaledToSize newSize:CGSize) -> UIImage{ 
    UIGraphicsBeginImageContextWithOptions(newSize, false, 0.0); 
    image.draw(in: CGRect(x: 0, y: 0, width: newSize.width, height: newSize.height)) 
    let newImage: UIImage = UIGraphicsGetImageFromCurrentImageContext()! 
    UIGraphicsEndImageContext() 
    return newImage 
} 

, 나는 IOS에서 줌에 따라 사용자 정의 마커의 크기를 조정하는 방법을 찾을 수 없습니다

marker.icon = self.imageWithImage(image: #imageLiteral(resourceName: "icnMapmarker"), scaledToSize: CGSize(width: 60.0, height: 60.0)) 

. 자바 스크립트에서는 scaledToSize 함수와 관련이 있지만 IOS에서는 동일한 설명서가 표시되지 않습니다.

답변

0

질문을 올바르게 이해하고 있다면 사용자가 확대/축소 할 때마다 아이콘 크기 조절을 실행하고 싶습니다.

먼저지도보기 컨트롤러가 GMSMapViewDelegate을 구현해야합니다.

는 그런 다음 대리자 메서드를 구현할 수 있습니다

func mapView(_ mapView: GMSMapView, idleAt position: GMSCameraPosition) { 
    // ... 
} 

이 메소드가 호출 될 때마다지도 이동 또는 줌 레벨 변경됩니다. 이 함수 내에서 현재 확대/축소를 얻을 수 있고 아이콘 크기를 기본으로 설정할 수 있습니다.

또한, 다음과 같이 이미지 크기 조정 기능을 실행할 수 있습니다 :

DispatchQueue.main.async { 
    marker.icon = self.imageWithImage(image: #imageLiteral(resourceName: "icnMapmarker"), scaledToSize: CGSize(width: 60.0, height: 60.0)) 
} 

희망이 도움이!

+0

다소 도움이됩니다. 나는 자바 스크립트가 가진 것처럼 더 많은 마법의 총알을 찾고 있었다. 그것은 많은 실험처럼 들립니다. 또 다른 문제점은 크기를 줄이면 크기가 커지므로 변경 내용이 있다는 것입니다. –