如何使整个呼叫可点击



我在地图上添加了注释并添加了标题,leftCalloutAccessoryView (ImageView)和rightCalloutAccessoryView (UIButton),当点击按钮时,它会播放音频,我想要而不是点击按钮,当我在标注顶部时,它开始播放音频的任何区域。

func mapView(mapView: MKMapView, viewForAnnotation annotation: MKAnnotation) -> MKAnnotationView? {
    var annotationView = mapView.dequeueReusableAnnotationViewWithIdentifier("AnnotationImage")
    if annotationView == nil {
        if annotation.isKindOfClass(Annotation) {
            annotationView = MKAnnotationView(annotation: annotation, reuseIdentifier: "AnnotationImage")             
            annotationView?.rightCalloutAccessoryView =   self.playButton() // Custome button for rightCallOut. 
            annotationView?.leftCalloutAccessoryView = UIImageView(image: UIImage(named: "annotationPinImage"))
            annotationView?.image = UIImage(named: "annotationPinImage.pdf")    
            annotationView?.canShowCallout = true   
            annotationView?.userInteractionEnabled = true    
    } else {    
         annotationView?.annotation = annotation       
    }   
    return annotationView    
}

播放按钮方法:

 func playButton() -> UIButton {    
    let image: UIImage = UIImage(named: "BtnPlayAudio.pdf")!    
    let button: UIButton = UIButton(type: .Custom)    
    button.frame = CGRectMake(0, 0, image.size.width, image.size.height)    
    button.setImage(image, forState: .Normal)     
    return button     
}

提前谢谢。

添加手势识别器...未经测试,让我知道它是否有效?我使用了双击,因为单个会太容易触发......

请注意,tapGestureRecognizer 最终可能需要成为类变量。

let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: "tapped:")
tapGestureRecognizer.numberOfTapsRequired  = 2
 annotationView.addGestureRecognizer(tapGestureRecognizer)
func tapped(sender: UITapGestureRecognizer)
{
    print("tapped ",sender)
    // play sound
}

相关内容

  • 没有找到相关文章

最新更新