MKMapView
内でスクロールとuserInteractionが無効になっていますUITableViewCell
。目的の効果(事実上、特定の位置にある地図の静止画像)は非常にうまく機能しますが、MKMapView
画面のオンとオフを切り替える(スクロールする)と、地図が再読み込みされ、アプリがクラッシュすることがあります。UITableViewCell
私は他のようにカスタムをロードしUITableViewCell
ましたcellForRowAtIndexPath
:
if(indexPath.section == 0 && indexPath.row == 0)
{
MapTableViewCell *cell = (MapTableViewCell *)[tableView dequeueReusableCellWithIdentifier:[NSString stringWithFormat:@"%@Map", cellIdentifier]];
if(cell == nil)
{
cell = [[[MapTableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:cellIdentifier] autorelease];
}
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"MapTableViewCell" owner:self options:nil];
for(id currentObject in topLevelObjects)
{
if([currentObject isKindOfClass:[UITableViewCell class]])
{
cell = (MapTableViewCell *)currentObject;
break;
}
}
return cell;
}
この現在の方法では、移動する前に地図画像をロードさせれば問題ないことがわかりましたUITableView
。ただし、読み込みが完了する前に画面から移動すると、クラッシュします。:(
マップを制御したり、マップに注釈を表示したりしたくないことを指摘しておきます。マップビューのスクリーンショットを作成し、画面から非表示にして、そのスクリーンショットをとして表示しようとしUIImageView
ましたUITableViewCell
が、これは十分な速度ではありませんでした。
編集:更新されたコード。これは、このメソッドの完全なコードです。私のカスタムTableViewCell割り当てはここで正しくありませんか?