请帮我解决这个问题,因为这个问题让我感到高兴。
我有一个名为Mapviewcontroller
的视图控制器。
此Mapviewcontroller
由地图视图(全部使用故事板创建)组成。点击地图中的图钉后,我应该将UIView
显示为popupview
(这是我的自定义UIView
,名为mappopoverView
。
此popoverview
也应显示一些位置列表,因此我使用了名为UITableView
的{{1}}。
我创建的maplocationTableview
&使用maplocationtableview
中的故事板设计并初步设置隐藏。点击地图引脚,我试图将我的tableview添加为子视图,但它无法正常工作。
我的代码是:
Mapviewcontroller
但是tableview没有添加为子视图,也没有调用 self. maplocationtableview.hidden = NO;
MappopoverView *alertView = [[MappopoverView alloc] initTableview:self.maplocationtableview];
alertView.delegate = self;
[alertView show];
[self. maplocationtableview setDelegate:self];
[self. maplocationtableview setDatasource:self];
[self. maplocationtableview reloadData];
。任何人都可以帮我解决一下。如果我的问题令人困惑,那就可以了。
答案 0 :(得分:1)
您必须在 mapviewcontroller 中创建 MappopoverView 的IBOutlet和 maplocationtableview ,然后您只需添加 maplocationtableview < / strong>使用 addSubview 在 MappopoverView 出口 还要确保你有IBOutlet mapview SO。你现在有三个IBOutlets
@property(强,非原子)IBOutlet MKMapView * mapview;
@property(强大,非原子)IBOutlet CUPopOverView * popoverview;
@property(强大的,非原子的)IBOutlet CUTableview * maplocationtableview;
请浏览以下代码:mapviewcontroller
viewDidLoad中
self.mapview.delegate = self;
[self.mapview setShowsUserLocation:YES];
[self.popoverview addSubview:self.maplocationtableview];
- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view {
if(![self.popoverview isDescendantOfView:view])
[view addSubview:self.popoverview];
}
-(void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation {
MKPointAnnotation *point = [[MKPointAnnotation alloc] init];
point.coordinate = CLLocationCoordinate2DMake(LAT, LONG);
[self.mapview addAnnotation:point];
}