我正在开发适用于iOS 7的应用程序,并试图将 map 从白天更改为夜间,并将夜间更改为白天模式。我没有在iOS 7文档中找到任何相关的API来执行此操作。
最佳答案
这不是MKMapKit
的内置功能,因此,如果您自己做的话,您所要询问的内容是不可能的。如果您要自己进行操作,则最好的办法是找到“夜间模式”图块的 map 图块源,并使用MKTileOverlay
类(iOS 7的新增功能)完全替换 map 的内容。
使用“开放街道 map ”图块源的简短代码示例(不是夜间图块!)
// Put this in your -viewDidLoad method
NSString *template = @"http://tile.openstreetmap.org/{z}/{x}/{y}.png";
MKTileOverlay *overlay = [[MKTileOverlay alloc] initWithURLTemplate:template];
//This is the important bit, it tells your map to replace ALL the content, not just overlay the tiles.
overlay.canReplaceMapContent = YES;
[self.mapView addOverlay:overlay level:MKOverlayLevelAboveLabels];
然后在下面实现
mapView
委托(delegate)方法...- (MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id<MKOverlay>)overlay {
if ([overlay isKindOfClass:[MKTileOverlay class]]) {
return [[MKTileOverlayRenderer alloc] initWithTileOverlay:overlay];
}
}
有关完整引用,请参见https://developer.apple.com/library/ios/documentation/MapKit/Reference/MKTileOverlay_class/Reference/Reference.html