UITableViewCell
でスクロールとuserInteractionを無効にしたMKMapView
があります。目的の効果(実際には特定の位置の地図の静的な画像)はうまくいきますが、MKMapView
が画面上をスクロール(スクロール)するとマップがリロードされ、アプリがクラッシュすることがあります。私はcellForRowAtIndexPath
にカスタムUITableViewCell
の他のUITableViewCell
などをロードしていますリロードからMKMapViewを停止する
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
を移動する前に、あなたは、地図画像のロードを許可すれば、この現在の方法で、それはOKだことを発見しました。しかし、ロードが完了する前に画面から移動すると、クラッシュします。 :(
私はマップを何か制御したり、注釈を表示したくないと指摘します。マップビューをスクリーンショットし、スクリーンから非表示にして、そのスクリーンショットを表示しようとしました。 UITableViewCell
でUIImageView
しかし、これは十分に速くはなかった
EDIT:!。。更新されたコードこれは、このメソッドの完全なコードで、ここで間違って私のカスタムTableViewCellのアロケーションです
あなたが実際に達成したい結果は明らかではありません。おおまかな推測では、MKMapViewのデリゲートがセルの場合、デリゲートをセルの-deallocでアンセットする必要があります。私はまた、あなたの念頭に置いておかなければならないことを解決することができません。 –
私は今これを感謝しました。あなたが知っていたかもしれないと思うかもしれません。私はここでもMapViewをリリースすべきですか? –
@tc Deallocセルが動作しているようです。これを答えに入れて、緑のダニをお渡しします! –