添加UITableview作为UIView的子视图时遇到麻烦

时间:2014-08-01 12:47:47

标签: ios objective-c uitableview uiview

请帮我解决这个问题,因为这个问题让我感到高兴。

我有一个名为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]; 。任何人都可以帮我解决一下。如果我的问题令人困惑,那就可以了。

1 个答案:

答案 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];
}