我有一個MKMapView
與滾動和userInteraction禁用內UITableViewCell
。所需效果(實際上是某個位置的地圖的靜態圖像)效果非常好,但當MKMapView
在屏幕上移動(滾動)時,它會重新加載地圖,偶爾會導致應用程序崩潰。我已經裝的自定義UITableViewCell
像任何其他UITableViewCell
在cellForRowAtIndexPath
:停止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
之前,那麼它的確定。但是如果你在完成加載之前將它從屏幕上移開,它會崩潰! :(
我只想指出我不希望能夠以任何方式控制地圖或顯示任何註釋。我確實嘗試截圖地圖視圖,將其隱藏在屏幕上並顯示該屏幕截圖作爲UITableViewCell
一個UIImageView
但是這是不夠快
編輯:!。更新後的代碼這是此方法的全部代碼是我的自定義TableViewCell頁頭不正確這裏
不明顯的結果你實際上想要實現。粗略猜測,如果MKMapView的委託是單元格,那麼您可能需要在單元格的-dealloc中取消設置委託。我也無法弄清楚你的筆尖加載應該做什麼。 – 2010-11-24 01:07:38