超过AGSMapView时,弹出窗口中的表视图不会滚动

时间:2013-06-17 13:37:26

标签: uitableview uipopovercontroller arcgis esri

我正在使用ArcGIS Runtime SDK for iOS,我有一个UITableViewController的子类,我在一个弹出窗口中呈现;显示的主视图控制器的基本视图是AGSMapView,其中附加AGSGraphicsLayerAGSSimpleRenderer)。当呈现弹出窗口时,无法选择单元格,并且滚动非常有限。当我将基本视图控制器的视图从AGSMapView更改为空白UIView时,弹出框中的表视图可以正常工作。

我的viewDidLoad:如下:

[super viewDidLoad];

self.mapView.layerDelegate = self;
self.mapView.calloutDelegate = self;
self.mapView.callout.delegate = self;

// Create an instance of a tiled map service layer.
AGSTiledMapServiceLayer *tiledLayer = [[AGSTiledMapServiceLayer alloc] initWithURL:[NSURL URLWithString:@"http://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer"]];

// Add it to the map view.
[self.mapView addMapLayer:tiledLayer withName:@"Tiled Layer"];

AGSSimpleMarkerSymbol *simpleMarkerSymbol = [AGSSimpleMarkerSymbol simpleMarkerSymbol];
self.graphicsLayer.renderer = [AGSSimpleRenderer simpleRendererWithSymbol:simpleMarkerSymbol];

// Add graphics layer to the map view.
[self.mapView addMapLayer:self.graphicsLayer withName:@"Graphics Layer"];

这可能是AGSMapView实施中的错误,如果是,我该如何报告呢?

提前致谢。

相关:Sister Question in the Esri Forums

修改

我确定该问题很难重现,因此我添加了mapViewDidLoad:来添加当前位置。这会导致问题发生。我的代码如下:

- (void)mapViewDidLoad:(AGSMapView *)mapView {
    [self.mapView.locationDisplay startDataSource];
    self.mapView.locationDisplay.autoPanMode = AGSLocationDisplayAutoPanModeDefault;
}

3 个答案:

答案 0 :(得分:0)

一个简单的解决方法是将视图控制器的主视图设为UIView,然后将AGSMapView和您的popover添加为基础UIView的子视图。

答案 1 :(得分:0)

这被发现是ArcGIS Runtime SDK for iOS中的一个错误。 Esri Support联系了我并告诉我它将在下一个版本中修复。

答案 2 :(得分:0)

我遇到了这个问题但是我在TileLayer加载后没有在viewDidLoad中添加图形层来解决这个问题

-(void)layerDidLoad:(AGSLayer *)layer
{
     NSLog(@"layer %@ loaded",layer.name);
     if(!self.graphicLayer)
     {
          self.graphicLayer = [AGSGraphicsLayer graphicsLayer];    
          [self.mapView addMapLayer:self.graphicLayer withName:@"Graphic Layer"];
     }
}