2013-02-11 24 views
5

Tôi có một UITableView với UITableViewCells có chứa một MKMapView.MKMapView bên trong một UITableViewCell

Vấn đề: nếu ô bảng được chọn, sau đó di chuyển bản đồ, bạn thấy chế độ xem bản đồ có màu trắng và bạn chỉ thấy nhãn "Pháp lý".

Có ai đã từng trải nghiệm điều này trước đây không?

screenshot

Dưới đây là toàn bộ mã:

@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; 
} 

Trả lời

4

Tôi đã có kinh nghiệm này.

Trong trường hợp của tôi, bản đồ trở nên trắng như thế này nếu tableView hoặc ô của nó có backgroundColor và ô của nó có kiểu màu xám hoặc xanh dương và ô được tái chế thông qua dequeue.

Tôi nghĩ rằng bản đồ sẽ không chuyển sang màu trắng như thế này nếu

cell.selectionStyle = UITableViewCellSelectionStyleNone; 
+1

Tôi đã thử điều đó, có thể xác nhận rằng không giải quyết được sự cố. – vgr

+2

Ah, ok những gì thực sự đã gây ra các bản đồ màu trắng trong trường hợp của tôi đã được thiết lập self.tableView.backgroundColor trong viewWillAppear. Cài đặt nềnXem nềnColor in viewDidLoad không tạo ra sự cố. Kiểu lựa chọn của ô không quan trọng. – Eric

+0

Trong trường hợp điều này giúp bất cứ ai, nếu bạn sử dụng một ngòi cho UITableViewCell thì có thể là nib có selectionStyle được đặt thành một cái gì đó khác với được thiết lập theo chương trình. Các ngòi có thể không được nạp khi cellForRowAtIndexPath được gọi (nơi cell.selectionStyle được lập trình thiết lập) và sau đó phong cách lựa chọn được đặt lại về giá trị trong nib. – Duncan

0

Tôi đã có kinh nghiệm này là tốt.

Bản đồ của tôi có nền trắng khi chạm vào sau khi đẩy/mở một bộ điều khiển chế độ xem chi tiết khác. TableView chưa có cấu hình màu/nền, mọi thứ đều mặc định.

cell.selectionStyle = UITableViewCellSelectionStyleNone; 

... thực sự đã trợ giúp.

Các vấn đề liên quan