我有一个自定义的MKAnnotationView,我在viewForAnnotation中自己设置我的图像.我如何使用MKPinAnnotationView为它设置动画效果?
我的代码是
- (MKAnnotationView *)mapView:(MKMapView *)map viewForAnnotation:(id <MKAnnotation>)annotation
{
static NSString *AnnotationViewID = @"annotationViewID";
MKAnnotationView *annotationView = (MKAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:AnnotationViewID];
if (annotationView == nil)
{
annotationView = [[[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:AnnotationViewID] autorelease];
}
annotationView.image = [UIImage imageNamed:@"blah.png"];
annotationView.annotation = annotation;
return annotationView;
}
Run Code Online (Sandbox Code Playgroud) cocoa-touch mapkit mkpinannotationview mkannotationview ios-4.2
我是swift(一般的iOS编程)的新手,我正在试图弄清楚如何缩放地图以适应地图上的2个点.
目前我有
var zoomRect = MKMapRectNull;
var myLocationPointRect = MKMapRectMake(myLocation.longitude, myLocation.latitude, 0, 0)
var currentDestinationPointRect = MKMapRectMake(currentDestination.longitude, currentDestination.latitude, 0, 0)
zoomRect = myLocationPointRect;
zoomRect = MKMapRectUnion(zoomRect, currentDestinationPointRect);
Run Code Online (Sandbox Code Playgroud)
什么也没做.
我必须以zoomRect某种方式申请地图吗?
UIScrollView有一个很好的contentInset属性,告诉视图,哪个部分在屏幕上可见.我有MKMapView一个半透明视图部分覆盖的.我希望地图在视图下可见.我必须在地图上显示几个注释,并且我想使用它们缩放它们-setRegion:animated:,但是地图视图不尊重它被部分覆盖,因此我的一些注释将被半透明视图覆盖.

有没有办法告诉地图,像滚动视图一样使用contentInset?
更新:这是我尝试过的:
- (MKMapRect)mapRectForAnnotations
{
if (self.trafik) {
MKMapPoint point = MKMapPointForCoordinate(self.trafik.coordinate);
MKMapPoint deltaPoint;
if (self.map.userLocation &&
self.map.userLocation.coordinate.longitude != 0) {
MKCoordinateSpan delta = MKCoordinateSpanMake(fabsf(self.trafik.coordinate.latitude-self.map.userLocation.coordinate.latitude),
fabsf(self.trafik.coordinate.longitude-self.map.userLocation.coordinate.longitude));
deltaPoint = MKMapPointForCoordinate(CLLocationCoordinate2DMake(delta.latitudeDelta, delta.longitudeDelta));
} else {
deltaPoint = MKMapPointForCoordinate(CLLocationCoordinate2DMake(0.01, 0.01));
}
return MKMapRectMake(point.x, point.y, deltaPoint.x, deltaPoint.y);
} else {
return MKMapRectNull;
}
}
Run Code Online (Sandbox Code Playgroud) 我想知道当我在mapview中设置蓝点(我的位置)和另一个引脚时,是否有办法进行动态缩放...当我加载mapview时,我想在同一帧中显示这两个点.. .可能吗?谢谢
我使用下面的代码来加载地图,但结果出来后,地图仍然以用户位置为中心而不是注释周围,因为我必须滚动到图钉才能看到。
Map(coordinateRegion: $region, showsUserLocation: true, annotationItems: searchResults) { dest in
MapAnnotation(coordinate: dest.coordinate, anchorPoint: CGPoint(x: 0.5, y: 0.5)) {
MapPin(coordinate)
}
}
Run Code Online (Sandbox Code Playgroud) 有没有人有一个例子,说明如何使用MKMapView上的annotationVisibleRect属性将MKMapView缩放到所有可见注释的区域?我已经看到这篇文章提供了一个不错的解决方案,但似乎这个annotationVisibleRect属性将是最简单的解决方案.
mapkit ×4
ios ×2
mkmapview ×2
swift ×2
cocoa-touch ×1
ios-4.2 ×1
objective-c ×1
swiftui ×1
xcode ×1