我正在开发需要像iOS上的原始MapView一样工作的Map应用程序。 我需要根据罗盘标题值旋转mapview。我试过了MTLocation例子我也试过this answer但我的结果并不好。
请看屏幕截图。
当我根据标题值旋转mapview时,Map正在旋转,但正如您在屏幕上看到的那样,缺少了。
如何解决此显示问题?
此致 - 法提赫
答案 0 :(得分:9)
Hy,
我是MTLocation的作者。谢谢你顺便使用它! 为此,您必须确保您的MKMapView是ViewController视图的子视图(而不是视图本身)。然后你必须用一个简单的Pytaghoras来增加mapView的框架 - 计算:宽度和高度必须至少与对角线一样大:sqrt(visibleWidth [320] ^ 2 + visibleHeight [480-88] ^ 2)= 506。
这意味着
mapView = [[MKMapView alloc] initWithFrame:CGRectMake(-100,-100,520,520)];
希望有所帮助,如果它解决了你的问题,请考虑提升。
答案 1 :(得分:0)
您可以考虑为MKMapView
对象使用更大的框架。它可能应该是一个正方形,每边都等于设备对角线的长度。这种方法的问题在于,该对象的某些区域是用户不会看到的,但我们仍然处理与该区域相关的注释的视图等信息。其他属性如visibleMapRect
则没有帮助。
另一种选择是通过在旋转时缩放MKMapView
对象来放大。但这可能会使地图模糊(未经测试)。您可以缩小地图中显示的区域,但可能会导致频繁刷新。您可以查看中间地面,在地图旋转一定角度之前不要缩小。您还可以查看使用两个视图,其中一个视图在屏幕外并更新,以便它可以在一定量的旋转后替换视图,以使其感觉无缝。
答案 2 :(得分:0)
我正在努力在iPhone中制作自己的地图应用程序。我希望我的地图随着用户的转动而旋转。我尝试在iOS 5中使用setUserTrackingMode
,但由于某种原因它不起作用。所以我决定接受MTLocation
框架here的帮助。
直到现在我已经做了以下事情。
MapKit.h
和MTLocation.h
。Viewcontroller.h
中,为mapView
定义了属性(我应该为locateMeItem
定义一个属性)。ViewDidLoad
中,粘贴页面末尾给出的代码here。我收到了一些错误:
locateMe
按钮。headingEnabled
。myCustomSelector
无效。self.toolbar
- 工具栏不是ViewController
的实例。我也在gist [dot] github [dot] com / 1373050上尝试过代码,但是我也遇到了类似的错误。
任何人都可以解释一个详细的程序。