在我的 iosswift
应用程序中,我有一个UITableViewController
动态添加的单元格。每个单元格都有一个MKMapView
嵌入的,我正在为不同坐标上的每个单元格设置地图的中心。我通过调用这个方法来做到这一点:
func centerMapOnLocation(location: CLLocation, map: MKMapView, radius: CLLocationDistance) {
let coordinateRegion = MKCoordinateRegionMakeWithDistance(location.coordinate,
radius * 2.0, radius * 2.0)
map.setRegion(coordinateRegion, animated: true)
}
里面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
}
这很好,它可以工作,但我想有很多记录会有内存问题 - 即使现在用户滚动表格时只有几个单元格 - 每个地图都会立即加载,我只能想象需要多少计算能力来做所以。
所以我的问题是 - 有没有办法将动态地图视图更改为某种可能是地图实际位置的屏幕截图?当涉及到大量细胞时,它会更快地工作吗?