首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在callOut视图中添加标题

在callOut视图中添加标题
EN

Stack Overflow用户
提问于 2015-10-24 09:24:29
回答 1查看 457关注 0票数 1

我创建了下面的视图,在这里我想在callOut中添加一个标题,但是我似乎不知道在哪里和如何做它。我想将它添加到注释中,它位于else if annotation.isKindOfClass(FBAnnotation)语句中。

代码语言:javascript
复制
func mapView(mapView: MKMapView, viewForAnnotation annotation: MKAnnotation) -> MKAnnotationView? {

    var reuseId = ""

    if annotation.isKindOfClass(FBAnnotationCluster) {
        var reuseId = "Annonation"
        reuseId = "Cluster"
        var clusterView = mapView.dequeueReusableAnnotationViewWithIdentifier(reuseId)
        clusterView = FBAnnotationClusterView(annotation: annotation, reuseIdentifier: reuseId)

        return clusterView

    } else if annotation.isKindOfClass(FBAnnotation) {

        let singleAnnotation = annotation as! FBAnnotation
        reuseId = "Pin"
        var pinView = mapView.dequeueReusableAnnotationViewWithIdentifier(reuseId)
        pinView = FBSingleClusterView(annotation: annotation, reuseIdentifier: reuseId) as FBSingleClusterView
        pinView!.image = UIImage(named: singleAnnotation.imageString)


        pinView?.canShowCallout = false
        let imagePinView = UIImageView(frame: CGRectMake(7.5, 7.5, pinView!.image!.size.width-15, pinView!.image!.size.width-15))
        imagePinView.clipsToBounds = true
        imagePinView.layer.cornerRadius = (pinView!.image!.size.width-15)/2
        imagePinView.contentMode = UIViewContentMode.ScaleAspectFill
        imagePinView.image = UIImage(data: singleAnnotation.logoImage)
        pinView?.addSubview(imagePinView)




        return pinView
    } else {
        return nil
    }

}

FBAnnotation

代码语言:javascript
复制
class FBAnnotation : NSObject {

    var coordinate = CLLocationCoordinate2D()
    var imageString = ""
    var logoImage = NSData()

}

extension FBAnnotation : MKAnnotation {

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-24 09:39:11

看来你把canShowCallout设为假了。如果你想打个招呼的话,这应该是真的。

代码语言:javascript
复制
pinView?.canShowCallout = false

还必须在MKAnnotation中设置title属性以使其在标注中显示。

MKAnnotation协议有一个标题,但它是可选的,所以您必须确保它是在自定义注释中实现的

代码语言:javascript
复制
class FBAnnotation : NSObject, MKAnnotation {

    var coordinate = CLLocationCoordinate2D()
    var imageString = ""
    var logoImage = NSData()
    var title: String?
    var subtitle: String?
} 

代码语言:javascript
复制
class FBAnnotation : NSObject {

    var coordinate = CLLocationCoordinate2D()
    var imageString = ""
    var logoImage = NSData()

}

extension FBAnnotation : MKAnnotation {
    var title: String?
    var subtitle: String?    
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33316561

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档