在iOS11该zPosition停止的annotationView.layer工作.每次地图区域发生变化.
bringViewToFront/ SendViewToBack方法Xcode 8.3/9
更新(解决方案感谢Elias Aalto):
创建MKAnnotationView时:
annotationView.layer.zPosition = 50;
if (IS_OS_11_OR_LATER) {
annotationView.layer.name = @"50";
[annotationView.layer addObserver:MeLikeSingleton forKeyPath:@"zPosition" options:0 context:NULL];
}
Run Code Online (Sandbox Code Playgroud)
在MeLikeSingleton或你在那里的任何观察者对象:
- (void)observeValueForKeyPath:(NSString *)keyPath
ofObject:(id)object
change:(NSDictionary *)change
context:(void *)context {
if (IS_OS_11_OR_LATER) {
if ([keyPath isEqualToString:@"zPosition"]) {
CALayer *layer = object;
int zPosition = FLT_MAX;
if (layer.name) {
zPosition = layer.name.intValue;
}
layer.zPosition = zPosition;
//DDLogInfo(@"Name:%@",layer.name);
}
}
}
Run Code Online (Sandbox Code Playgroud)
它是如何在IOS11之前工作的
..是用的
- (void)mapView:(MKMapView …Run Code Online (Sandbox Code Playgroud)