У меня есть карта Google, и я создал собственное информационное окно для своих маркеров. Я поставил пару кнопок на окно, но я не могу взаимодействовать с ними на всю жизнь. Вот мой пользовательский вид:
class MarkerWindowView: UIView, UIGestureRecognizerDelegate {
//@IBOutlet weak var thumbNail: UIImageView!
@IBOutlet weak var userName: UILabel!
@IBOutlet weak var videoLocation: UILabel!
@IBOutlet weak var tags: UILabel!
override func awakeFromNib() {
println("awake From Nib")
self.userInteractionEnabled = true
print(self.userInteractionEnabled)
/*let recognizer = UITapGestureRecognizer(target: self, action:Selector("handleTap:"))
recognizer.delegate = self
/*for test in layer.sublayers {
println(test)
}*/*/
}
@IBAction func playVideoPressed(sender: AnyObject) {
println("play video")
}
@IBAction func markerWindowViewWasTapped(sender: UITapGestureRecognizer) {
println("playvideo")
}
/*func handleTap(recognizer: UITapGestureRecognizer) {
println("tapped")
}*/
}
и вот метод, который возвращает представление в контроллере представления:
func mapView(mapView: GMSMapView!, markerInfoWindow marker: GMSMarker!) -> UIView! {
println("markeInfoWindow")
var newView = NSBundle.mainBundle().loadNibNamed("MarkerWindowView", owner: self, options: nil).first! as! MarkerWindowView
//println(newView.description)
newView.userName.text = "Kazuma"
newView.videoLocation.text = "Harvard"
newView.tags.text = "Kazuma is crazy"
//view.bringSubviewToFront(newView)
//view.insertSubview(newView, atIndex: 0)
//newView.userInteractionEnabled = true
/*for subView in self.view.subviews {
println(subView)
}*/
//view.bringSubviewToFront(newView)
return newView
}
Я пробовал кучу вещей, чтобы попытаться взаимодействовать с этим представлением, включая смещение представлений в стеке, перемещение слоев и т. д. У кого-нибудь была эта проблема раньше? Любая идея, что я делаю неправильно. Материал, который я прокомментировал, в основном я пытаюсь его взломать.