私の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
}
これは問題なく機能しますが、多くのレコードではメモリに問題があると思います-ユーザーがテーブルをスクロールしたときにセルが2つしかない場合でも-各マップは即座にロードされ、それを行うのにどれだけの計算能力が必要か想像できますそれで。
私の質問は、動的マップ ビューをマップの実際の位置のスクリーンショットのようなものに変更する方法はありますか? 細胞数が多いほど速くなりますか?