Nella mia app ios swift
ho un UITableViewController
con celle aggiunte dinamicamente. Ogni cella ha un MKMapView
incorporato e sto impostando il centro della mappa per ogni cella su coordinate diverse. Sto facendo così chiamando questo metodo:In ogni cella in UITableViewController ho una mappa incorporata. C'è un modo per cambiarlo con schermate di mappa?
func centerMapOnLocation(location: CLLocation, map: MKMapView, radius: CLLocationDistance) {
let coordinateRegion = MKCoordinateRegionMakeWithDistance(location.coordinate,
radius * 2.0, radius * 2.0)
map.setRegion(coordinateRegion, animated: true)
}
all'interno 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
}
Questo va bene e funziona, ma immagino con un sacco di dischi ci saranno problemi con la memoria - anche ora con solo coppie di celle quando l'utente fa scorrere la tabella - ogni mappa viene caricata istantaneamente e posso solo immaginare quanta potenza di calcolo ci vuole per farlo.
Quindi la mia domanda è: esiste un modo per modificare la visualizzazione dinamica della mappa in una sorta di schermata della posizione effettiva della mappa? Funzionerà più velocemente quando si tratta di molte celle?