iOS Mapkit 自定义图像看起来放大了 2 倍

发布于 2024-11-26 23:00:12 字数 1077 浏览 1 评论 0 原文

我使用下面的图像[使用注释、MapkitView 等]来标记一些位置。但是,当显示图像时,它们看起来放大了 2 倍。 这是正常的吗?

这是我使用的继承类

@interface ImageAnnotationView : MKAnnotationView {
        UIImageView *_imageView;
        id m_parent;
        BusinessMapAnnotation *m_annotation;

        NSString *stitle;
    }


    - (id)initWithAnnotation:(id <MKAnnotation>)annotation reuseIdentifier:(NSString *)reuseIdentifier
    {
        self = [super initWithAnnotation:annotation reuseIdentifier:reuseIdentifier];
        self.backgroundColor = [UIColor clearColor];

        self.m_annotation = (BusinessMapAnnotation*)annotation;

        self.stitle = m_annotation.sTitle;
        _imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:([stitle isEqualToString:@"You are here"]) ? @"Pushpin_large.png":@"NearPin.png"]];
        _imageView.contentMode = UIViewContentModeCenter;

        [self addSubview:_imageView];
        _imageView.center = ([stitle isEqualToString:@"You are here"]) ? CGPointMake(15.0, -10.0):CGPointMake(kWidth/2, 0.0);

        return self;
    }

am using the following image [using Annotations, MapkitView etc], to mark some locations. But, when the images are displayed, they appear 2X bigger.
Is this normal?

Here is an inherited class, that I use

@interface ImageAnnotationView : MKAnnotationView {
        UIImageView *_imageView;
        id m_parent;
        BusinessMapAnnotation *m_annotation;

        NSString *stitle;
    }


    - (id)initWithAnnotation:(id <MKAnnotation>)annotation reuseIdentifier:(NSString *)reuseIdentifier
    {
        self = [super initWithAnnotation:annotation reuseIdentifier:reuseIdentifier];
        self.backgroundColor = [UIColor clearColor];

        self.m_annotation = (BusinessMapAnnotation*)annotation;

        self.stitle = m_annotation.sTitle;
        _imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:([stitle isEqualToString:@"You are here"]) ? @"Pushpin_large.png":@"NearPin.png"]];
        _imageView.contentMode = UIViewContentModeCenter;

        [self addSubview:_imageView];
        _imageView.center = ([stitle isEqualToString:@"You are here"]) ? CGPointMake(15.0, -10.0):CGPointMake(kWidth/2, 0.0);

        return self;
    }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

仄言 2024-12-03 23:00:12

如果您的图像是针对视网膜显示质量分辨率制作的,但没有在文件名末尾附加 @2x(即“[email protected]' 作为项目文件夹中的文件名),那么在绘制时它们将显示为两倍大。如果是这种情况,请不要更改代码,只需将 @2x 附加到文件名即可。

If your images are made for retina-display quality resolution but do not have @2x appended to the end of the filename (i.e. '[email protected]' as the file name in your project folder) then they will appear two times larger when drawn. If this is the case, don't change your code, just append @2x to the filename.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文