- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试将我的图钉颜色更改为紫色,但当我这样做时我失去了标题。代码是:
- (void)viewDidLoad {
[super viewDidLoad];
self.navigationController.navigationBarHidden=YES;
//init the location manager
self.locationManager = [[CLLocationManager alloc] init];
self.locationManager.desiredAccuracy = kCLLocationAccuracyBest;
[self.locationManager requestWhenInUseAuthorization];
self.mapView.showsUserLocation=YES;
self.userGeoPoint=self.message[@"userLocation"];
self.pinView = [[MKPointAnnotation alloc] init];
self.pinView.title=self.message[@"fromUser"];
self.coord = CLLocationCoordinate2DMake(self.userGeoPoint.latitude, self.userGeoPoint.longitude);
self.pinView.coordinate=self.coord;
//use a slight delay for more dramtic zooming
[self performSelector:@selector(addPin) withObject:nil afterDelay:0.5];
}
-(void)addPin{
[self.mapView addAnnotation:self.pinView];
[self.mapView selectAnnotation:self.pinView animated:YES];
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(self.coord, 800, 800);
[self.mapView setRegion:[self.mapView regionThatFits:region] animated:YES];
}
-(MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotationPoint
{
if ([annotationPoint isKindOfClass:[MKUserLocation class]])//keep the user as default
return nil;
static NSString *annotationIdentifier = @"annotationIdentifier";
MKPinAnnotationView *pinView = [[MKPinAnnotationView alloc]initWithAnnotation:annotationPoint reuseIdentifier:annotationIdentifier];
pinView.pinColor = MKPinAnnotationColorPurple;
//now we can throw an image in there
return pinView;
}
我尝试为 MKPinAnnotation 设置标题属性,但没有一个。无论如何我可以解决这个问题吗?
最佳答案
在viewForAnnotation
中,需要将canShowCallout
设置为YES
(默认为NO
):
pinView.pinColor = MKPinAnnotationColorPurple;
pinView.canShowCallout = YES;
pinView
的属性,类型为 MKPointAnnotation
,您正在使用它在 viewDidLoad
中创建注释对象。然后在 viewForAnnotation
中,您有一个名为 pinView
的 MKPinAnnotationView
类型的局部变量。这里虽然没有命名上的冲突,但是却造成并暗示了一些概念上的困惑。 MKPointAnnotation
是一个注释 model 类,而 MKPinAnnotationView
是一个注释 view 类——它们是完全不同的东西。例如,将注释属性命名为 pin
或 userAnnotation
会更好。viewForAnnotation
中的注释:
//now we can throw an image in there
似乎暗示此时您可以在 View 中设置自定义图像。不建议在 MKPinAnnotationView
中设置自定义图像,因为该类旨在以三种颜色之一显示默认图钉图像。要使用自定义图像,请改为创建普通的 MKAnnotationView
。
关于ios - 尝试更改 MKPointAnnotation 颜色但丢失标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29315590/
我想用自定义 Logo 替换默认的 MKPointAnnotation Logo 。 所以我在 MapViewController 中编写了这段代码: import UIKit import MapK
我正在尝试向我的 MKPointAnnotations 添加一个按钮,然后对新的 View Controller 执行操作 我仔细研究了这两个问题 How to add button to MKPoi
简单问题:我似乎找不到 MKPointAnnotation 类的标记属性。它返回错误; MKPointAnnotation *annotation = [[HCIAnnotationViewContr
所以我有以下代码块,它应该迭代 JSON 对象数组并将 MKPointAnnotations 放在 map 上: for(id jsonObject in dataArray) { NSLog
我有 map View ,其中几乎没有 MKPointAnnotation。 一切正常,但是, View 的 MKPoiintAnnotation 的“背景”是“不可见的”,因此不是很“可见”。 我想
我是 Objective-C 的大三学生。我有一个任务将手势识别器添加到 MKPointAnnotation。我听说可以通过 MKMapView 委托(delegate)来完成。但我还不明白。 因此,
我创建了很多图钉,当我按下图钉时,标题必须显示,而副标题必须隐藏,因为它是一段很长的文本并且出现在 UItextView 中。问题是我没有找到隐藏字幕的方法,所以在标题下,我有一段很长的文字,结尾是:
是否可以向 MKPointAnnotation 添加额外的属性?目前有 coordinate , title , 和 subtitle . 是否可以添加 url可以在 -(MKAnnotationVi
我需要更改 MKPointAnnotation 对象的颜色,但我编写的方法似乎只生成红色图钉。该方法工作正常,但是当我调用该函数并传递给定常量之一的参数时, map 上出现的所有图钉都是红色的(默认值
为了在 Storyboard iOS 项目中创建 map 注释,我使用了: CLLocationCoordinate2D annotationCoord3; annotatio
在我的 viewWillAppear 中有一个 View MKPointAnnotation *point = [[MKPointAnnotation alloc] init]; [point set
有没有办法阻止启用 MKMapView 实例中的注释。换句话说,当用户点击 map 上的红色图钉时,有没有办法阻止它突出显示图钉。现在,触摸时引脚会变黑... 编辑:我正在使用以下代码返回 MKPin
我想知道如何更新我的 annotation我拖动它时的标题,因为所有 annotation属性是get仅。 我尝试过的代码: func mapView(_ mapView: MKMapView, an
摘要:使用应用程序中的解析链接(而非查询)注释 已完成:我想做的是让新创建的注释成为 PFObject。我尝试执行此操作的方法是获取基于 MKPointAnnotation 的坐标。然后将其转换为带有
我正在尝试在 MapView 上显示两个注释。 为什么第二个注释不显示在 MapView 中?我尝试将地标[0]更改为放置标记[1],但没有帮助。 我本来可以使用 for 子句,但为了测试我重复了代码
我想知道当我点击标题时如何转到另一个 View MKPointAnnotation func addPin(lat:Double, lng:Double) { let testPin
我是 Xcode 新手,我从未使用 swift 创建过 iphone 应用程序,所以我在这方面仍然遇到很多麻烦。 在我的应用程序中,我想打开 map 页面,并希望为我拥有的每个地址显示一个图钉。为此,
我正在尝试在 MKPointAnnotations 上添加不同的图像。这是我的代码,当只有一个注释时它工作正常。我面临在不同注释上添加不同图像的问题。 func showDevices(Devs: A
当前正在使用 map View 并向 map 添加图钉。我知道如何使用 addAnotation() 方法向 map 添加单个点。现在,我尝试以最简单的方式向 MapView 添加多个点。我已经获取了
我有一个 map 应用程序,允许用户将注释保存为可变数组的收藏夹。然后可以在用户选择时显示所有喜欢的注释。 添加到可变数组的注释属于 MKPointAnnotation 类。我可以正确地向可变数组添加
我是一名优秀的程序员,十分优秀!