在iOS7下,发现应用中的地图显示时,字特别大,如下。而在iOS6下是正常的。
经过分析发现原因如下:
在MKMapView中,设置region后,MKMapView会调用regionThatFits方法,重新计算一个和frame比例匹配的region,重新设置地图的region。
但是在iOS7上,如果frame和设置的region比例相差较大,这个重新计算出的region就不准确,具体表现是地图上的汉字特别大。可能原因是在iOS7上regiog的各项在double和float类型转换时出了问题。同样代码,在iOS6上就没有问题。
解决方案就是在设置map的region时,先根据地图的frame计算出符合frame比例的的region来,以避免因为设置的regiog比例不合适,map在调用regionThatFits重新计算region时出错。
具体代码参考:
http://blog.youkuaiyun.com/nlforever/article/details/9075313
http://troybrant.net/blog/2010/01/mkmapview-and-zoom-levels-a-visual-guide/
http://troybrant.net/blog/2010/01/set-the-zoom-level-of-an-mkmapview/