Я создал приложение, которое использует некоторые функции карт. Я добавил MKMapView в UITableViewCell и WebView в другой uiTableviewcell (мне это нужно, потому что он выглядит элегантно). Я создал свои собственные ячейки. Моего UITableView делегат и DataSource методы:UITableView перезагружает данные во время прокрутки
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 2;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 1;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSInteger section = indexPath.section;
switch (section)
{
case 0:
return [self cellForMapView];
case 1:
return [self cellForUIWebView];
}
return nil;
}
-(UITableViewCell *)cellForMapView
{
//if (_mapViewCell)
// return _mapViewCell;
// if not cached, setup the map view...
CGFloat cellWidth = self.view.bounds.size.width - 20;
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
cellWidth = self.view.bounds.size.width - 90;
}
CGRect frame = CGRectMake(0, 0, cellWidth, 241);
_mapView = [[MKMapView alloc] initWithFrame:frame];
_mapView.showsUserLocation = YES;
_mapView.userLocation.title = @"Текущее местоположение";
_mapView.mapType = MKMapTypeStandard;
_mapView.zoomEnabled = YES;
NSString * cellID = @"Cell";
UITableViewCell *cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:cellID] autorelease];
[cell.contentView addSubview:_mapView];
_mapViewCell = cell;
return cell;
}
/*
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return 50.0f;
} */
-(UITableViewCell *)cellForUIWebView
{
//if (_webViewCell)
// return _webViewCell;
CGFloat cellWidth = self.view.bounds.size.width - 20 ;
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
cellWidth = self.view.bounds.size.width - 90;
}
CGRect frame = CGRectMake(0, 0, cellWidth, 241);
_webView = [[UIWebView alloc] initWithFrame:frame];
NSString * cellID = @"Cell";
UITableViewCell *cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:cellID]autorelease];
[cell.contentView addSubview:_webView];
_webViewCell = cell;
return cell;
}
Я загружаю некоторые данные в WebView и для отображения некоторых аннотаций на карте. Проблема заключается в том, что когда пользователь меняет ориентацию и прокручивает данные таблицы, представление таблицы автоматически перезагружает данные (у меня есть мой веб-просмотр и Карта, которые воссозданы и ничего не отображаются). Как решить эту проблему? Может быть, я могу сохранить состояние tableviewcell ?? Но как это сделать?
Этот раз 1000. Если бы я мог голосовать на этот раз я пять бы. Все время люди хранят данные в представлении. Нехорошо. – Fogmeister