Ios MkmapView用户位置

Ios MkmapView用户位置,ios,objective-c,mkmapview,cllocationmanager,Ios,Objective C,Mkmapview,Cllocationmanager,我正在开发一个基于MKMapView的应用程序,该应用程序的要求是检测用户位置(由蓝点表示)是位于屏幕的可见区域还是位于可见屏幕区域之外 在开始加载地图时,它会自动将其位置设置为用户的位置,但我想在用户滚动地图视图后检测当前位置是否在屏幕的可见区域 请提供有用的解决方案并帮助我 提前谢谢。只需使用userLocationVisible(我不记得了,但@Volker提醒了我) 任何注释: 获取位置并检查像素坐标是否可见 从地图中获取用户位置 得到它的坐标 将其转换为映射点(MKMapPointF

我正在开发一个基于
MKMapView
的应用程序,该应用程序的要求是检测用户位置(由蓝点表示)是位于屏幕的可见区域还是位于可见屏幕区域之外

在开始加载地图时,它会自动将其位置设置为用户的位置,但我想在用户滚动地图视图后检测当前位置是否在屏幕的可见区域

请提供有用的解决方案并帮助我


提前谢谢。

只需使用
userLocationVisible
(我不记得了,但@Volker提醒了我)


任何注释:

获取位置并检查像素坐标是否可见

  • 从地图中获取用户位置
  • 得到它的坐标
  • 将其转换为映射点(MKMapPointForCoordinate)
  • 获取mapview的可见mapRect
  • 使用MKMapRectContainsPoint

    MKMapRect visibleRect = self.mapView.visibleMapRect;
    MKMapPoint pt = MKMapPointForCoordinate(self.mapview.userLocation.coordinate);
    
    BOOL visible = MKMapRectContainsPoint(visibleRect, pt);
    

  • 可能重复为什么不直接使用
    userLocationVisible
    ?@Volker:D因为我不记得了,下面是我自己问题的答案:-(void)mapView:(MKMapView*)mapView regionDidChangeAnimated:(BOOL)animated{if(!mapView.userLocationVisible)NSLog(@“userlocation不可见”);else NSLog(@“用户位置现在可见”);}感谢Volker和Daij Djan的回答,这帮助我实现了我想要实现的目标。