In meiner ios swift
App habe ich eine UITableViewController
mit Zellen dynamisch hinzugefügt. Jede Zelle hat eine MKMapView
eingebettet und ich setze das Zentrum der Karte für jede Zelle auf verschiedenen Koordinaten. Ich mache so durch diese Methode aufrufen:In jeder Zelle in UITableViewController habe ich eine Karte eingebettet. Gibt es eine Möglichkeit, es stattdessen zu Screenshots der Karte zu ändern?
func centerMapOnLocation(location: CLLocation, map: MKMapView, radius: CLLocationDistance) {
let coordinateRegion = MKCoordinateRegionMakeWithDistance(location.coordinate,
radius * 2.0, radius * 2.0)
map.setRegion(coordinateRegion, animated: true)
}
innen cellForRowAtIndexPath
:
override func tableView(tview: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tview.dequeueReusableCellWithIdentifier("cell") as! SingleCall
let user:SingleUser = self.items[indexPath.row] as! SingleUser
let regionRadius: CLLocationDistance = 150
let initialLocation = CLLocation(latitude: user.coordinate.latitude, longitude: user.coordinate.longitude)
centerMapOnLocation(initialLocation, map: cell.eventMap, radius: regionRadius)
cell.eventMap.zoomEnabled = false
cell.eventMap.scrollEnabled = false
cell.eventMap.userInteractionEnabled = false
}
Das ist in Ordnung und es funktioniert, aber ich mit vielen Aufzeichnungen vorstellen, wird es Probleme mit dem Gedächtnis - auch jetzt mit nur paar Zellen, wenn der Benutzer die Tabelle scrollt - jede Karte lädt sofort und ich kann mir nur vorstellen, wie viel Rechenleistung dafür benötigt wird.
Also meine Frage ist - gibt es eine Möglichkeit, die dynamische Kartenansicht zu einer Art von vielleicht Screenshot der tatsächlichen Position der Karte zu ändern? Wird es schneller arbeiten, wenn es um viele Zellen geht?