Ho un UITableView con UITableViewCells che contiene un MKMapView.MKMapView all'interno di UITableViewCell
Il problema: se viene selezionata la cella della tabella, quindi spostare la mappa, si vede la mapview è tutto bianco e si vede solo l'etichetta "Legal".
Qualcuno ha provato questo prima?
Ecco l'intero codice:
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
self.table.backgroundColor = [UIColor clearColor];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return 5;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return 70;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
MKMapView *map = [[MKMapView alloc] initWithFrame:CGRectMake(0, 0, 220, 70)];
MKCoordinateSpan span = MKCoordinateSpanMake(0.01, 0.01);
CLLocationCoordinate2D logCord = CLLocationCoordinate2DMake(47.606, -122.332);
MKCoordinateRegion region = MKCoordinateRegionMake(logCord, span);
[map setRegion:region animated:NO];
UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"aaaa"];
[cell.contentView addSubview:map];
return cell;
}
Ho già provato, posso confermare che non risolve il problema. – vgr
Ah, ok, in realtà ciò che stava causando la mappa bianca nel mio caso era l'impostazione di self.tableView.backgroundColor in viewWillAppear. Impostazione del background di tableViewColor in viewDidLoad non produce il problema. Lo stile di selezione della cella non ha importanza. – Eric
Nel caso in cui questo aiuti qualcuno, se si utilizza un pennino per UITableViewCell, allora è possibile che il pennino abbia il setStyle impostato su qualcosa di diverso da quello impostato in modo programmatico. Il pennino potrebbe non essere stato caricato quando viene chiamato cellForRowAtIndexPath (dove cella.selectionStyle è impostato a livello di codice) e quindi lo stile di selezione viene reimpostato sul valore nel pennino. – Duncan