У меня есть MKMapView
с отключенной прокруткой и пользовательским взаимодействием в 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 здесь неправильным?