相关疑难解决方法(0)

如何在地图的注释的标注中添加自定义视图

这是我的代码.我想添加自己的自定义标注视图而不是iOS默认值.我知道只有左侧标注和右侧标注视图,但我需要添加一个带有我自己的背景和标签的视图工具提示类型.

    - (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
    {
        MKAnnotationView *userAnnotationView = nil;
        if ([annotation isKindOfClass:MKUserLocation.class])
        {
            userAnnotationView = (MKAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:@"UserLocation"];
            if (userAnnotationView == nil)  {
            userAnnotationView = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"UserLocation"];
            }
            else
                userAnnotationView.annotation = annotation;

            userAnnotationView.enabled = YES;


            userAnnotationView.canShowCallout = YES;
            userAnnotationView.image = [UIImage imageNamed:@"map_pin.png"];
            UIView *view = [[UIView alloc]initWithFrame:CGRectMake(0,0,141,108)];
            view.backgroundColor = [UIColor clearColor];
            UIImageView *imgView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"toltip.png"]];
            [view addSubview:imgView];
            userAnnotationView.leftCalloutAccessoryView = view;



            return userAnnotationView;
        }

}
Run Code Online (Sandbox Code Playgroud)

图片供参考

iphone maps

32
推荐指数
3
解决办法
5万
查看次数

如何使用MKAnnotationView创建自定义"pin-drop"动画?

我有一个实例,MKMapView并希望使用自定义注释图标,而不是MKPinAnnotationView提供的标准图钉图标.所以,我已经设置了一个名为CustomMapAnnotation的MKAnnotationView的子类,并且重写-(void)drawRect:了绘制CGImage.这有效.

当我尝试复制.animatesDropMKPinAnnotationView提供的功能时出现问题; 当注释被添加到MKMapView实例时,我希望我的图标能够逐渐显示,从上到下以及从左到右顺序显示.

这是 - (void)drawRect:用于CustomMapAnnotation,当你只绘制UIImage(这是第二行所做的)时它可以工作:

- (void)drawRect:(CGRect)rect {
 [super drawRect:rect];
 [((Incident *)self.annotation).smallIcon drawInRect:rect];
 if (newAnnotation) {
  [self animateDrop];
  newAnnotation = NO;
 }
} 
Run Code Online (Sandbox Code Playgroud)

添加animateDrop方法时出现问题:

-(void)animateDrop {
 CGContextRef myContext = UIGraphicsGetCurrentContext();

 CGPoint finalPos = self.center;
 CGPoint startPos = CGPointMake(self.center.x, self.center.y-480.0);
 self.layer.position = startPos;

 CABasicAnimation *theAnimation;
 theAnimation=[CABasicAnimation animationWithKeyPath:@"position"];
 theAnimation.fromValue=[NSValue valueWithCGPoint:startPos];
 theAnimation.toValue=[NSValue valueWithCGPoint:finalPos];
 theAnimation.removedOnCompletion = NO;
 theAnimation.fillMode = kCAFillModeForwards;
 theAnimation.delegate = self;
 theAnimation.beginTime = 5.0 * (self.center.x/320.0);
 theAnimation.duration = 1.0;
 [self.layer addAnimation:theAnimation …
Run Code Online (Sandbox Code Playgroud)

iphone core-animation mapkit mkpinannotationview

24
推荐指数
4
解决办法
3万
查看次数

MKPinAnnotationView自定义图像被带有动画下落的图钉替换

我在MapView上显示用户头像图像.如果在没有动画的情况下渲染它们,它们似乎正在工作,但是我想为它们的动画制作动画.如果我将pinView.animatesDrop设置为true,那么我将丢失头像并将其替换为pin.如何在不使用针的情况下为我的头像添加动画效果?

这是我正在使用的viewForAnnotation方法:

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation {
    if ([annotation isKindOfClass:[MKUserLocation class]])
        return nil;

    MKPinAnnotationView* pinView = (MKPinAnnotationView*)[self.mapView dequeueReusableAnnotationViewWithIdentifier:@"MyAnnotation"];

    if (!pinView) {
        pinView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"CustomPinAnnotation"];
    }
    else
        pinView.annotation = annotation;

    //If I set this to true, my image is replaced by the pin
    //pinView.animatesDrop = true;

    //I'm using SDWebImage
    [pinView setImageWithURL:[NSURL URLWithString:@"/pathtosomeavatar.png"] placeholderImage:[UIImage imageNamed:@"placeholder.png"]];

    //Adding a nice drop shadow here
    pinView.layer.shadowColor = [UIColor blackColor].CGColor;
    pinView.layer.shadowOffset = CGSizeMake(0, 1);
    pinView.layer.shadowOpacity = 0.5;
    pinView.layer.shadowRadius = 3.0;

    return pinView; …
Run Code Online (Sandbox Code Playgroud)

objective-c mkpinannotationview mkmapview ios

10
推荐指数
1
解决办法
2万
查看次数

是否可以在MKAnnotationView而不是MKPinAnnotationView中调用animatesDrop?

你知道吗MKPinAnnotationView有一个方法"animatesDrop"来动画一个引脚注释从顶部到地图上的阴影点?好的,是否可以使用自定义图像执行此操作?

iphone view mkannotation

9
推荐指数
1
解决办法
7770
查看次数

如何使用故事板给出位置坐标以在ios中绘制地图中的点?

我正在使用storyboard在视图控制器中创建地图视图.

当我使用以下代码时.

-(void) mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation
{
    CLLocationDistance distance = 1000;   
    MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(userLocation.coordinate,
                               distance, 
                               distance);
    MKCoordinateRegion adjusted_region = [self.mapView regionThatFits:region];
    [self.mapView setRegion:adjusted_region animated:YES];
}
Run Code Online (Sandbox Code Playgroud)

在美国加利福尼亚州旧金山绘制一个点.该 userLocation坐标是预定值MapKit.h框架.现在我创建一个

-(void) mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation
{
    CLLocationDistance distance = 1000;
    CLLocationCoordinate2D myCoordinate;
    myCoordinate.latitude = 13.04016;
    myCoordinate.longitude = 80.243044;
    MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(myCoordinate, 
                                                                   distance, 
                                                                   distance);
    MKCoordinateRegion adjusted_region = [self.mapView regionThatFits:region];
    [self.mapView setRegion:adjusted_region animated:YES];
}
Run Code Online (Sandbox Code Playgroud)

这里,显示具有中心坐标的区域.但是,在坐标位置没有绘制点.

如何在该坐标位置绘制点或注释?

mapkit ios cllocationcoordinate2d

8
推荐指数
1
解决办法
1万
查看次数

iOS中的自定义注释图像

我试图用特定的图像替换典型的iOS mapkit"pin".我是编码的新手,所以我不确定为什么这不起作用,但这是我尝试过的:

对于该方法

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{
Run Code Online (Sandbox Code Playgroud)

除此之外,我还有:

pinView.animatesDrop=YES;
pinView.canShowCallout=YES;
//pinView.pinColor=MKPinAnnotationColorPurple;
UIImage *pinImage = [UIImage imageNamed:@"Jeff.png"];
[pinView setImage:pinImage];
Run Code Online (Sandbox Code Playgroud)

但是,即使代码编译得很好,pinView也没有设置pinImage.任何想法为什么不呢?

annotations objective-c mapkit ios

6
推荐指数
1
解决办法
2万
查看次数

MKAnnotationView自定义图像未显示

我试图在地图上添加自定义图像而不是常规图钉.但它仍然是一个红色的针...我错过了什么?

- (MKAnnotationView *) mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>) annotation{  
    static NSString* AnnotationIdentifier = @"AnnotationIdentifier";
    MKPinAnnotationView *annView = [[MKPinAnnotationView alloc]     initWithAnnotation:annotation reuseIdentifier:AnnotationIdentifier];
    annView.animatesDrop = TRUE;
    annView.image = [UIImage imageNamed:@"CustomPin.png"];
    return annView;
}
Run Code Online (Sandbox Code Playgroud)

iphone cocoa-touch objective-c mkmapview mkannotationview

3
推荐指数
1
解决办法
6225
查看次数