- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
MKPinAnnotationView 不允许您使用自定义图像作为“图钉”并同时启用拖动,因为一旦您开始拖动图像就会变回默认图钉。因此,我使用 MKAnnotationView 而不是 MKPinAnnotationView。
虽然使用 MKAnnotationView 而不是 MKPinAnnotationView 确实会将您的自定义图像显示为您的“图钉”,但它不支持您使用默认图钉获得的拖放动画。
无论如何,我的问题是,在我将自定义 MKAnnotationView 拖到 map 上的一个新点然后移动 map 本身之后,MKAnnotationView 不再随 map 移动。
-(MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation {
static NSString *defaultID = @"myLocation";
if([self.annotation isKindOfClass:[PinAnnotation class]])
{
//Try to get an unused annotation, similar to uitableviewcells
MKAnnotationView *annotationView = [self.mapView dequeueReusableAnnotationViewWithIdentifier:defaultID];
//If one isn't available, create a new one
if(!annotationView)
{
annotationView = [[MKAnnotationView alloc] initWithAnnotation:self.annotation reuseIdentifier:defaultID];
annotationView.canShowCallout = YES;
annotationView.draggable = YES;
annotationView.enabled = YES;
}
UIImageView *imgView = [[UIImageView alloc] initWithFrame:CGRectMake(0.0, 0.0, 32, 32)];
imgView.image = self.passableTag.image;
annotationView.leftCalloutAccessoryView = imgView;
annotationView.image = [UIImage imageNamed:[Constants tagIconImageNameForTagType:self.passableTag.type]];
return annotationView;
}
return nil;
}
最佳答案
只需在结束拖动后将 annotationView.dragState 设置为 MKAnnotationViewDragStateNone 即可:
- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view didChangeDragState:(MKAnnotationViewDragState)newState fromOldState:(MKAnnotationViewDragState)oldState {
if ([view.annotation isKindOfClass:[PinAnnotation class]]) {
if (newState == MKAnnotationViewDragStateEnding) {
view.dragState = MKAnnotationViewDragStateNone;
}
}
}
关于ios - 拖动我的 MKAnnotationView 后拖动 map 不会随之移动 MKAnnotationView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18933632/
MKPinAnnotationView 不允许您使用自定义图像作为“图钉”并同时启用拖动,因为一旦您开始拖动图像就会变回默认图钉。因此,我使用 MKAnnotationView 而不是 MKPinAn
我正在尝试通过动画使我的注释淡入淡出,因此我使用 0 的 alpha 创建它们,然后在 didAddAnnotation 中将它们的 alpha 设置为 1。有时我只添加一些注释,减去其他注释,但现在
我使用此代码创建我的自定义注释 View 。 - (MKAnnotationView *)mapView:(MKMapView *)mV viewForAnnotation:(id )annotati
iPhone SDK map 上的标注气泡上,标题和副标题属性的字体是否可以更改。 我对标注气泡中显示的默认字体不满意,并且想使用不同的字体来匹配我的应用程序的其余部分。然而,我没有看到太多提及这一点
我在MKMapView上添加了一个MKAnnotationView,当我长按它时,我希望它可以被抬起并移动到另一个位置。 如何做?特别感谢! 最佳答案 适用于 iOS 4.0 或更高版本 摘自 App
实际上,我正在我的应用程序中开发一些东西,它可以在我的 MKMapView 中显示注释这些注释应该是可单击的并将参数传递给方法。 现在的问题是如何在点击披露按钮时将参数传递给下一个函数。 对于注释的格
我一直在尝试创建一个必须显示多行文本的 MKAnnotationView。 有人指示我做下面网址中所说的事情 How to add more details in MKAnnotation in iO
我正在尝试在 MapKit 中模拟用户位置动画(其中用户的位置由脉动的蓝点表示)。我创建了 MKAnnotationView 的自定义子类,并在 drawRect 方法中尝试循环一组颜色。这是我正在做
我有一个MKAnnotationView ( draggable 属性设置为 YES )使用自定义图像,通过 image 设置属性(property)。当注释添加到 map 时,它具有自定义图像。但当
我已经对 MKAnnotationView 进行了子类化,以创建一个注释,该注释基本上通过重写 drawRect 来围绕 map View 上的点绘制一个圆。在以下情况下(在模拟器中),圆圈绘制得很好
我很难弄清楚如何让用户一次在 map 上选择多个注释。我的 annotationViews 不显示标注,但 annotationView 的图像在选择时会发生变化。有没有一种简单的方法来启用这种行为?
我在这里使用 Daniel 提供的自定义 MKAnnotationView 动画:Subclassing MKAnnotationView and overriding setDragState但我遇
我喜欢 iOS 6 中新的自动布局功能,但是在将它与我的 MKAnnotationView 子类结合使用时遇到了一些麻烦。 我在初始化方法中禁用了自动调整掩码转换。 self.translatesAu
我使用此代码在 Swift 中创建一个简单的 MKAnnotationView 标注。 let local_parking = CustomAnnotation() local_par
以下代码返回几个编译器错误: override init(frame: CGRect) { //Initializer does not override a designated initializ
在我的代码中,我使用Apple map 并在 View Controller 中正确设置mapView和自身的委托(delegate)。 在我的 ViewController 中,我还在 for 循环
我想根据它们代表的相对时间在 UIMapView 中显示不同颜色的图钉 但似乎 mapView:viewForAnnotation: 方法的作用与调用时间无关。 在我的代码示例中,我已经将文件中较早和
大家好,提前致谢 =) 我对 MKMapView 和 MKAnnotationView 有疑问。我需要在 MKMapView 上显示带有自定义图像的注释。为此,根据几个教程和其他 stackoverf
当您设置 MKAnnotationView 的可拖动属性时,默认行为似乎是: 1) 用户点击注释 2) 用户拖动注释 是否可以将其合二为一,以便用户无需先点击即可拖动注释? 最佳答案 试试这个源代码
我在一段时间 [4 秒] 后隐藏 MKAnnotationView 时遇到问题。我有一个名为 mapView 的 MKMapView,它使用 MKUserLocation 显示用户位置,我在他的
我是一名优秀的程序员,十分优秀!