首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检查MKCoordinateRegion中是否有可用的MKAnnotation

如何检查MKCoordinateRegion中是否有可用的MKAnnotation
EN

Stack Overflow用户
提问于 2011-12-30 10:55:22
回答 1查看 5.8K关注 0票数 8

我注意到,如果我使用MKMapView的selectAnnotation:animated:,如果MKAnnotation没有显示在我地图正在显示的当前MKCoordinateRegion中,它将把我的地图滚动到屏幕之外。

有没有一种简单的方法来检查注释当前是否在屏幕上指定的MKCoordinateRegion中?我希望能够选择一个只在屏幕上而不是屏幕外的注释。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-30 11:04:34

MKMapView类中使用annotationsInMapRect:方法。它返回在给定map rect中可见的所有注释对象的NSSet。使用NSSetcontainsObject:方法测试该批注是否存在于该可见批注集中。

代码语言:javascript
复制
MKMapRect visibleMapRect = aMapView.visibleMapRect;
NSSet *visibleAnnotations = [aMapView annotationsInMapRect:visibleMapRect];
BOOL annotationIsVisible = [visibleAnnotations containsObject:someAnnotation];

此外,visibleMapRect与区域相同,但只是不同的表示形式。从文件里拿出来,

visibleMapRect

地图视图当前显示的区域。

@property(nonatomic) MKMapRect visibleMapRect

此属性表示与region属性相同的基本信息,但指定为地图矩形而不是区域。

票数 27
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8675702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档