点击事件在IOS上的mapView不在钛工作室工作

时间:2016-05-30 15:47:24

标签: ios iphone annotations click titanium

我正在使用一些注释创建应用。现在我需要点击服装上的注释。我试图将click事件放在每个注释或mapView上,但没有任何接缝可以工作。我试过这个:

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

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:

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

在android上,mapView click事件运行正常。问题出在IOS上。

1 个答案:

答案 0 :(得分:2)

对于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:

mapView.addEventListener("click", myFunction);