MKMapView在注解选择iOS8上显示空白

用户3057005

我在iOS 8中遇到了MKMapview的一些奇怪行为。我有一个自定义视图(UIView的子类),其中包含MKMapview。

NMView -> MKMapView

NMView代码

#import "NMView.h"

@implementation NMView

@synthesize mapView;
- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        frame=self.bounds;
        self.translatesAutoresizingMaskIntoConstraints=NO;
        mapView=[[MKMapView alloc]initWithFrame:frame];
        mapView.showsUserLocation=YES;
        [mapView setAutoresizingMask:UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight];
        [self setAutoresizingMask:UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight];
        mapView.delegate=self;
        [self addSubview:mapView];
        self.backgroundColor=[UIColor grayColor];
    }
    return self;
}
-(void)addCustomAnnotaion:(id<MKAnnotation>)annot{
  MKCoordinateRegion region=MKCoordinateRegionMake(annot.coordinate, MKCoordinateSpanMake(10.0f, 10.0f));
   [mapView setRegion:region];
    [mapView addAnnotation:annot];
   // [mapView selectAnnotation:annot animated:YES];
}

- (MKAnnotationView *)mapView:(MKMapView *)mapViews viewForAnnotation:(id <MKAnnotation>)annotation
{

    if ([annotation isKindOfClass:[MKUserLocation class]]){
        return nil;
    }
    static NSString * const identifier = @"MyCustomAnnotation";
    MKAnnotationView* annotationView = (MKAnnotationView*)[mapViews dequeueReusableAnnotationViewWithIdentifier:identifier];

    if (annotationView){
        annotationView.annotation = annotation;
    }
    else{
        annotationView = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:identifier];
        annotationView.canShowCallout = YES;
        UIView *rightView=[[UIView alloc]initWithFrame:CGRectMake(5, 0, 80,50)];
        rightView.backgroundColor=[UIColor clearColor];

        UIButton* edit = [UIButton buttonWithType:UIButtonTypeCustom];
        [edit setImage:[UIImage imageNamed:@"editPOI"] forState:UIControlStateNormal];
        [edit addTarget:self action:@selector(editPoi:) forControlEvents:UIControlEventTouchUpInside];
        edit.backgroundColor=[UIColor clearColor];
        edit.frame=CGRectMake(15, 5, 30,30);

        UIButton* delButton = [UIButton buttonWithType:UIButtonTypeCustom];
        [delButton setImage:[UIImage imageNamed:@"deletePOI"] forState:UIControlStateNormal];
        [delButton addTarget:self action:@selector(deletePoi:) forControlEvents:UIControlEventTouchUpInside];
        delButton.backgroundColor=[UIColor clearColor];
        delButton.frame=CGRectMake(55, 5, 30,30);

        [rightView addSubview:delButton];
        [rightView addSubview:edit];

        UIImageView *imgviewIcon=[[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 30, 30)];
        [imgviewIcon setImage:[UIImage imageNamed:@"pin.png"]];
        [annotationView setImage:[UIImage imageNamed:@"pin.png"]];
        [annotationView layoutIfNeeded];
        annotationView.leftCalloutAccessoryView=imgviewIcon;
        annotationView.rightCalloutAccessoryView=rightView;

    }

    return annotationView;

}
-(IBAction)editPoi:(id)sender{
    //edit
}
-(IBAction)deletePoi:(id)sender{
    //delete
}

我正在将NMView添加到我的视图控制器

NMView *nv=[[NMView alloc]initWithFrame:CGRectMake(5, 5, 300, 400)];
[self.view addSubview:nv];

现在,我要使用NMView的自定义方法向mapview添加注释,

MKPointAnnotation *point=[[MKPointAnnotation alloc]init];
point.coordinate=pinCoordinate;
point.title=@"test";
[nv addCustomAnnotaion:point];

我已经在iOS7中对其进行了良好的测试:

在此处输入图片说明

但是在iOS8中,在选择注释时,整个NMView变为空白

是iOS 8的错误,还是我做错了?请帮忙..

编辑

如果我以编程方式选择注释,则在iOS 8中也会出现相同的问题。

[mapView selectAnnotation:annot animated:YES];

其他人会面对这个问题?

iOS8黑屏。在此处输入图片说明

我已在以下网址上上传了项目:https : //drive.google.com/file/d/0BxkVP7smm8Z6SnM1UjBxcjc5aDg/view? usp =sharing

请检查一下让我知道..

圣堂武士

我不确定为什么,但是如果删除此行,它会起作用:

self.translatesAutoresizingMaskIntoConstraints=NO;

参考:当“ translatesAutoresizingMaskIntoConstraints”设置为“ NO”时,视图消失

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

MKMapView在注解选择iOS8上显示空白

来自分类Dev

为什么MKMapView iOS8上不显示MKCircle

来自分类Dev

UISearchController未在iOS8上显示

来自分类Dev

在iOS7和iOS8上均显示警报

来自分类Dev

在iOS7和iOS8上均显示警报

来自分类Dev

UICollectionView未显示iOS8

来自分类Dev

在iOS8上未调用willRotateToInterfaceOrientation

来自分类Dev

iOS8上的iPhone接口方向

来自分类Dev

iOS8上的Mailcore2

来自分类Dev

自定义UItableView无法在ios8上正确显示

来自分类Dev

自定义UItableView无法在ios8上正确显示

来自分类Dev

iOS:单击注解时,在detailView上显示json信息

来自分类Dev

AVPlayer在iOS7中不显示视频,在iOS8和iOS9上可以正常工作

来自分类Dev

AVPlayer在iOS7中不显示视频,在iOS8和iOS9上可以正常工作

来自分类Dev

仅具有iphone目标(非通用)的iOS应用在ipad iOS7上可正常显示,但在ipad iOS8上则无法显示

来自分类Dev

仅具有iphone目标(非通用)的iOS应用在ipad iOS7上可正常显示,但在ipad iOS8上则无法显示

来自分类Dev

iOS7和iOS8上的Healthkit

来自分类Dev

在iOS8上,以横向模式显示我的应用会隐藏状态栏,但在iOS 7上,两个方向上都会显示状态栏

来自分类Dev

我无法在真实设备上的IOS8中的应用程序中仅显示简单的UIActionSheet

来自分类Dev

Quicklook / QLPreviewController在iOS 8上显示空白页面而不是pdf,但在iOS7上运行良好

来自分类Dev

iOS8今日视图小部件未显示UITableViewController

来自分类Dev

如何在iOS8中显示键盘

来自分类Dev

显示用户的位置Xcode6 / IOS8

来自分类Dev

presentPopoverFromRect在iOS8 Beta中不显示弹出框

来自分类Dev

UILabel未在iOS8中显示子视图

来自分类Dev

圆形选择MKMapView上的位置

来自分类Dev

SpriteKit 场景在 iOS 8 上是空白的

来自分类Dev

startMonitoringSignificantLocationChanges从不接收iOS8上的位置

来自分类Dev

从CBCentralManagerDelegate进行回调以在IOS8上检索CBPeripheral

Related 相关文章

  1. 1

    MKMapView在注解选择iOS8上显示空白

  2. 2

    为什么MKMapView iOS8上不显示MKCircle

  3. 3

    UISearchController未在iOS8上显示

  4. 4

    在iOS7和iOS8上均显示警报

  5. 5

    在iOS7和iOS8上均显示警报

  6. 6

    UICollectionView未显示iOS8

  7. 7

    在iOS8上未调用willRotateToInterfaceOrientation

  8. 8

    iOS8上的iPhone接口方向

  9. 9

    iOS8上的Mailcore2

  10. 10

    自定义UItableView无法在ios8上正确显示

  11. 11

    自定义UItableView无法在ios8上正确显示

  12. 12

    iOS:单击注解时,在detailView上显示json信息

  13. 13

    AVPlayer在iOS7中不显示视频,在iOS8和iOS9上可以正常工作

  14. 14

    AVPlayer在iOS7中不显示视频,在iOS8和iOS9上可以正常工作

  15. 15

    仅具有iphone目标(非通用)的iOS应用在ipad iOS7上可正常显示,但在ipad iOS8上则无法显示

  16. 16

    仅具有iphone目标(非通用)的iOS应用在ipad iOS7上可正常显示,但在ipad iOS8上则无法显示

  17. 17

    iOS7和iOS8上的Healthkit

  18. 18

    在iOS8上,以横向模式显示我的应用会隐藏状态栏,但在iOS 7上,两个方向上都会显示状态栏

  19. 19

    我无法在真实设备上的IOS8中的应用程序中仅显示简单的UIActionSheet

  20. 20

    Quicklook / QLPreviewController在iOS 8上显示空白页面而不是pdf,但在iOS7上运行良好

  21. 21

    iOS8今日视图小部件未显示UITableViewController

  22. 22

    如何在iOS8中显示键盘

  23. 23

    显示用户的位置Xcode6 / IOS8

  24. 24

    presentPopoverFromRect在iOS8 Beta中不显示弹出框

  25. 25

    UILabel未在iOS8中显示子视图

  26. 26

    圆形选择MKMapView上的位置

  27. 27

    SpriteKit 场景在 iOS 8 上是空白的

  28. 28

    startMonitoringSignificantLocationChanges从不接收iOS8上的位置

  29. 29

    从CBCentralManagerDelegate进行回调以在IOS8上检索CBPeripheral

热门标签

归档