Ich habe eine UITableView mit UITableViewCells, die eine MKMapView enthält.MKMapView in einem UITableViewCell
Das Problem: Wenn die Tabelle Zelle jemals ausgewählt wird, dann verschieben Sie die Karte, Sie sehen, die Mapview ist alles weiß und Sie sehen nur die "Legal" -Label.
Hat das jemand schon einmal erlebt?
Hier ist der gesamte Code:
@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;
}
Ich habe schon versucht, kann bestätigen, dass das Problem nicht löst. – vgr
Ah, ok, was die weiße Karte in meinem Fall verursacht hat, war das Setzen von self.tableView.backgroundColor in viewWillAppear. Die Hintergrundfarbe von tableView in viewDidLoad verursacht das Problem nicht. Die Auswahl der Zelle spielt keine Rolle. – Eric
Wenn dies hilft, wenn Sie eine Nib für die UITableViewCell verwenden, dann ist es möglich, dass die nib den selectionStyle auf etwas anderes gesetzt hat, als programmatisch eingestellt ist. Die nib wurde möglicherweise nicht geladen, wenn cellForRowAtIndexPath aufgerufen wird (wobei cell.selectionStyle programmgesteuert festgelegt ist). Anschließend wird der Auswahlstil auf den Wert in der nib zurückgesetzt. – Duncan