저는 Swift에 아주 익숙하며 Google Maps API를 더 잘 이해하려고합니다. 나는 didTapMarker 메서드를 통해 panoramaView의 마커를 두드리면 이미지를 보여주는 간단한 앱을 만들고 있습니다. 각 마커는 서로 다른 이미지를 보여야하기 때문에 마커 태그를 식별 할 수있는 방법을 찾고 있습니다. 모든 제안을 환영합니다.어떤 GMSMarker를 탭했는지 식별하는 방법 - iOS, Swift
아래에는 2 개의 마커와 2 개의 이미지가있는 코드의 프로토 타입이 있습니다. 어떻게해야하는지 잘 모르겠지만, 이 도청 될 때 을 표시하고 marker2
을 탭한 경우 randomImage2
을 표시해야합니다. 지금까지 과 marker1
두 가지가 모두 탭된 경우에만 randomImage
이 표시됩니다.
import UIKit
import GoogleMaps
class ViewController: UIViewController, GMSPanoramaViewDelegate {
@IBOutlet weak var viewStreet: UIView!
@IBOutlet weak var randomImage: UIImageView!
@IBOutlet weak var randomImage2: UIImageView!
var panoView: GMSPanoramaView!
override func viewDidLoad() {
super.viewDidLoad()
randomImage.hidden = true
randomImage2.hidden = true
let panoView = GMSPanoramaView(frame: CGRectMake(200, 200, 400, 400))
panoView.delegate = self
panoView.moveNearCoordinate(CLLocationCoordinate2D(latitude: -33.732, longitude: 150.312))
viewStreet.addSubview(panoView)
viewStreet.sendSubviewToBack(panoView)
let position = CLLocationCoordinate2D(latitude: -33.732, longitude: 150.312)
let marker = GMSMarker(position: position)
marker.panoramaView = panoView
let position2 = CLLocationCoordinate2D(latitude: -33.732, longitude: 150.311)
let marker2 = GMSMarker(position: position2)
marker2.panoramaView = panoView
}
func panoramaView(panoramaView: GMSPanoramaView, didTapMarker marker: GMSMarker) -> Bool {
randomImage.hidden = false
randomImage2.hidden = true
return true
}
}
EDIT : 모두 덕분에 해결 방법을 알려 드리겠습니다. 마커가 도청 될 때
marker.userData = "example"
은 다음
didTapMarker
방법은 항상 호출되지만 탭 마커 위의 하나 인 경우에만
randomImage
의 타당성은 false로 설정됩니다.
사전을 사용하여 여러 마커를 처리하도록 코드를 개선 할 수 있지만 사용자가 결정해야합니다. :)
한 가지 방법은 GMSMarker를 사전 [GMSMarker : UIImageView]' – Paulw11
@ Paulw11에 대한 열쇠로 사용하는 것입니다. 감사합니다. –
'GMSMarker'에'userData' 속성을 설정할 수 있습니다 (예 : 표시 할 이미지 또는 이미지 ID 등). –