This is an example of displaying some details of a MapsIndoors location.
Start by creating a UIViewController
class that conforms to the MPMapControlDelegate
protocol
class LocationDetailsController: UIViewController, MPMapControlDelegate {
Add a MPMapControl
to the class
var mapControl: MPMapControl?
Add other views needed for this example
var detailsView = UIStackView()
var mainView = UIStackView()
var nameLabel = UILabel()
var descrLabel = UILabel()
Inside viewDidLoad
, setup the label views
mapControl?.delegate = self
nameLabel.backgroundColor = UIColor.white
descrLabel.backgroundColor = UIColor.white
Arrange the labels inside a stackview
detailsView = UIStackView(arrangedSubviews: [nameLabel, descrLabel])
detailsView.axis = .vertical
Arrange the map and the stackview inside another stackview
mainView = UIStackView(arrangedSubviews: [map!, detailsView])
mainView.axis = .vertical
When marker is tapped, get related MapsIndoors location object and set label text, based on the name and description of the location
func didTapInfoWindow(location: MPLocation) -> Bool {
self.nameLabel.text = location.name
self.descrLabel.text = location.descr
return false
}
When map is tapped, reset label text
func didTap(coordinate: MPPoint) -> Bool {
self.nameLabel.text = nil
self.descrLabel.text = nil
return false
}
Last updated