我有一个带UITableViewCells的UITableView,它包含一个MKMapView。
问题:如果表格单元格被选中,然后移动地图,您会看到地图视图全部为白色,您只看到“合法”标签。
以前有没有人经历过这个?
以下是整个代码:
@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;
}
答案 0 :(得分:4)
我经历过这个。
在我的情况下,如果mapView或单元格具有backgroundColor,并且其单元格具有灰色或蓝色选择样式,并且单元格通过dequeue回收,则地图将变为白色。
如果
,我认为地图不会像这样变白cell.selectionStyle = UITableViewCellSelectionStyleNone;
答案 1 :(得分:0)
我也经历过这种情况。
我的地图在按下/弹出另一个细节视图控制器后触摸时有白色背景。 TableView尚未配置颜色/背景,一切都是默认的。
cell.selectionStyle = UITableViewCellSelectionStyleNone;
......实际上有所帮助。