我的问题与此类似 Displaying custom multiple pins shows wrong pins for locations 但略有不同,我在斯威夫特工作。即使转换后,我也无法解决我的问题。 我有注释,每个都有不同的图像。图像是编号指针。每个注释的细节来自一个plist。标题是“1停车场”,“2磨”等。我在空间前取部分得到对应于png图像的数字。
加载时,所有注释都具有正确的图像。如果我将该区域平移并返回,则图像可以相互交换。这似乎是一个重用的问题,但我看不到解决方案。在viewdidload中调用getMapAnnotations()。
func mapView(_ mapView: MKMapView!, viewFor annotation: MKAnnotation!) -> MKAnnotationView! {
let identifier = "Stand"
var imageI: String?
var imageAn: String?
imageI = annotation.title!
if annotation.isKind(of: Stands.self) {
print("ANNOTATION \(imageI!)")
if let range = imageI?.components(separatedBy: " ") {
var imageII = range[0]
imageAn = "\(imageII).png"
print (imageAn!)
}
var annotationView = mapView.dequeueReusableAnnotationView(withIdentifier: identifier)
if annotationView == nil {
annotationView = MKAnnotationView(annotation: annotation, reuseIdentifier: identifier)
//
annotationView?.image = UIImage(named: imageAn! )
annotationView?.canShowCallout = true
annotationView?.layer.zPosition = -1
let btn = UIButton(type: .detailDisclosure)
annotationView?.rightCalloutAccessoryView = btn
} else {
annotationView!.annotation = annotation
}
return annotationView
}
return nil
}
然后是注释视图
RUN apt-get clean && apt-get update \
&& apt-get -yqq install \
apache2 \
php \
php-mcrypt \
php-curl \
php-mbstring \
php-xml \
php-zip \
libapache2-mod-php \
php-mysql \
git \
supervisor \
&& apt-get -y autoremove \
&& apt-get clean \
&& php -r "readfile('http://getcomposer.org/installer');" | php -- --install-dir=/usr/bin/ --filename=composer \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \
&& ln -sf /dev/stdout /var/log/apache2/access.log \
&& ln -sf /dev/stderr /var/log/apache2/error.log \
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash && nvm install 7.4.0 \
&& nvm use 7.4.0 \
答案 0 :(得分:0)
我似乎已经找到了解决方案,更多的是通过反复试验而不是知道自己在做什么。 我补充道 annotationView?.image = UIImage(名称:imageAn!) 制作
}else{
annotationView?.image = UIImage(named: imageAn! )
annotationView.annotation = annotation
}
如果我理解正确,注释是坐标,标题和副标题的信息,没有关于显示的信息。 AnnotationView设置注释的显示方式。使用图钉或自定义图像。 如果AnnotationView是nill,则正确创建注释视图。如果注释退出视图并返回,则AnnotationView不是nil,因此系统会随机获取视图以显示它。 添加 annotationView?.image = UIImage(名称:imageAn!) 强制显示正确的图像。 如果此架构不正确,我确定有人会纠正我。