У меня 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?