iOS8 的 MapKit 和 Location
今天把 iOS8 的 MapKit
研究了下,一会儿对比下和 iOS7 的区别。另外就是,Xcode6 的改动真他妈大,新建工程没有 empty ,工程里面没有 pch 文件,项目设置里面没有包含任何 framework ,连项目国际化都不会了。。看起来倒是整洁不少,具体怎么回事,回头再研究吧!
为了省事,还是使用拖控件的方式。新建项目,拖上去一个 MapKit 控件, ctrl 拖到控制器,成为一个属性。添加 MapKit
框架, Location
框架。 plist 添加NSLocationWhenInUseUsageDescription、NSLocationAlwaysUsageDescription 字段。
加上这行
<MKMapViewDelegate,CLLocationManagerDelegate>
还有这行
@property (nonatomic,strong) CLLocationManager *locMgr;
在 viewDidLoad 里面这么写
self.locMgr = [CLLocationManager new];
[self.locMgr requestWhenInUseAuthorization];
self.locMgr.delegate = self;
self.mapView.userTrackingMode = MKUserTrackingModeFollow;
self.mapView.delegate = self;
直接运行你会发现,成功运行

Allow之后,会进入模拟器预设的自定义地点(北京的经纬度位 39 , 116)

你们运行之后,地图一定是放大到了最大,达到上方效果还需要添加这么个代理方法
- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation
内容这么写
userLocation.title = @"帝都";
userLocation.subtitle = @"厚德载雾,自强不吸";
CLLocationCoordinate2D center = userLocation.location.coordinate;
MKCoordinateSpan span = MKCoordinateSpanMake(0.1, 0.1);
MKCoordinateRegion region = MKCoordinateRegionMake(center, span);
[mapView setRegion:region];

iOS7怎么做我就不赘述了,百度一搜一大把。iOS7 中的地图,默认加载显示美国的版块,比例尺最大,模拟完地点之后,比例尺还是最大,需要手动调小,iOS8 正好相反。
另外,求语言国际化的教程。Xcode6 真用不习惯。