我正在尝试在我的应用中添加一个地图,其中显示了圆顶位置以及自定义信息窗口中每个位置的描述,该窗口应该看起来像这样:
所以我创建了一个带有类的xib文件来创建看起来像这样的自定义窗口:
及其班级:
import UIKit
class CustomInfoWindow: UIViewController {
@IBOutlet weak var name = UILabel()
@IBOutlet weak var desc = UITextView()
override func viewDidLoad() {
super.viewDidLoad()
}
init(name:String, desc:String) {
self.name?.text = name
self.desc?.text = desc
super.init(nibName: nil, bundle: nil)
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
现在每当我实现map的委托方法时,它返回标记信息窗口的UIView并添加文本,如下所示:
func mapView(_ mapView: GMSMapView, markerInfoContents marker: GMSMarker) -> UIView? {
if marker.position.latitude == latitude && marker.position.longitude == longitude{
marker.title = "You"
return nil
}else{
let customWindow = CustomInfoWindow(name: theName!, desc: theDesc!)
return customWindow.view
}
}
这就是我得到的:
这个问题让我烦恼了很长时间,所以如何解决?