IOS 中 mapView 上的单击事件在 titanium studio 中不起作用

click event on mapView in IOS not working in titanium studio

我正在创建一个带有一些注释的应用程序。现在我需要处理点击服装的注释。我试图将点击事件放在每个注释或 mapView 上,但 none 接缝起作用。我试过这个:

这就是我创建服装注释的方式:

var pins = [];

var imgTemp = Ti.UI.createImageView({
    image : "/images/p_" + keys[j] + ".png"
});

var alturaImg = imgTemp.toBlob().height;
var larguraImg = imgTemp.toBlob().width;
var alturaImgNova = deviceHeight * 0.04;
var fator = alturaImg / alturaImgNova;
var larguraImgNova = larguraImg / fator;

var annottion = MapModule.createAnnotation({
    latitude : pontos2[keys[j]][i].Lat,
    longitude : pontos2[keys[j]][i].Long,
    pincolor : MapModule.ANNOTATION_VIOLET,
    customView : Ti.UI.createImageView({
       height : alturaImgNova,
       width : larguraImgNova,
       image : "/images/p_" + keys[j] + ".png"
    }),
    draggable : false,
    id : id
});

pins.push(pins);
mapview.addAnnotations(pins);

点击注释:

MyAnnotation.addEventListener('click', function() {
    alert("click");
}); 

点击地图查看:

mapview.addEventListener('click', function() {
    alert("click");
});

在 android 上,mapView 单击事件工作正常。问题出在 IOS 上。

对于 IOS,您必须将 canShowCallout 设置为 false。

创建注释:

var annotation = MapModule.createAnnotation({
        latitude : annotations[i].latitude,
        longitude : annotations[i].longitude,
        myid : i
    });

if (OS_IOS) {
        annotation.image = "/images/icn_map_location.png";
        annotation.canShowCallout = false;
    } else {
        annotation.customView = Ti.UI.createLabel({
            width :  48,
            height : 58,
            backgroundImage :  "/images/icn_map_location.png"
        });
    }

点击地图查看:

mapView.addEventListener("click", myFunction);