【问题标题】:MapView inside UICollectionViewCell not functioningUICollectionViewCell 内的 MapView 无法正常工作
【发布时间】:2014-10-27 02:08:06
【问题描述】:

我在我的项目中使用粘性标题流布局 (https://github.com/jamztang/CSStickyHeaderFlowLayout),但在标题中的 mapview 遇到了问题。集合视图标题是我的自定义类HeaderMapViewCell,它是UICollectionViewCell 的子类,并且有一个MKMapView 的IBOutlet,但它不会显示任何注释或触发任何操作,即使它的属性确实发生了变化(当我在调试器中打印它们时)。

基本上这是我的设置

UICollectionViewController -> CollectionView -> HeaderMapViewCell -> MapView

这里也有例子:

-(IBAction)changeData:(UISegmentedControl*)sender{
    if (_mapView.mapType == MKMapTypeStandard)
        [_mapView setMapType:MKMapTypeSatellite];
    else
        [_mapView setMapType:MKMapTypeStandard];
    if(sender.selectedSegmentIndex==0)
        _displayStudents = YES;
    else
        _displayStudents = NO;
    [self.collectionView reloadData];

}

当我触发这个方法时,地图上没有任何变化,但是当我设置断点时,地图视图的属性确实发生了变化,只是从不直观地显示任何东西!

视图控制器的 mapview 委托方法被部分触发。 RegionDidChangeAnimated 在加载时被触发一次,然后当我放大它时不会被触发。另一方面, viewForAnnotation 确实被调用并返回正确的对象,但从不显示任何内容。我在地图视图上做错了,只是不确定是什么。让我知道您是否有想法,或者您是否需要我发布更多代码或任何内容!谢谢!

【问题讨论】:

    标签: ios objective-c mkmapview uicollectionview uicollectionviewlayout


    【解决方案1】:

    检查这个方法

    [mapView addAnnotation:YourMapAnnotation];

    你在哪里调用了这个方法?

    你可以把它放在 didUpdateLocation(locationManager)/didUpdateUserLocation(mapView) 或 viewDidLoad 方法。

    如果你的mapview以后使用iOS8,需要通过locationManger检查授权

    // ios8
    
    if([self.locationManager respondsToSelector:@selector(requestWhenInUseAuthorization)]){
    
        [self.locationManager requestWhenInUseAuthorization];
    
        CLAuthorizationStatus status = [CLLocationManager authorizationStatus];
        if(status == kCLAuthorizationStatusAuthorizedWhenInUse){
            self.mapView.showsUserLocation = YES;
        }
    }else{
    
        self.mapView.showsUserLocation = YES;
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-24
      相关资源
      最近更新 更多