2016-05-30 5 views
0

私はいくつかの注釈でアプリケーションを作成しています。今私は注釈の衣装をクリックして処理する必要があります。私はclickイベントを各アノテーションまたはmapViewに配置しようとしましたが、動作する継ぎ目はありません。私はこれを試してみました:IOS上の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"); 
}); 

をアンドロイドマップビューのクリックイベントは正常に動作します。問題はIOS上です。

+0

を私は 'タイトル' を定義するとき、私はあることを発見しました。問題は私がInfoWindowを必要としないことです。私もタイトルをつけてInfo Windowを隠そうとしましたが、showInfoWindow:false、seamsは動作しません。 –

答えて

2

IOSの場合、canShowCalloutをfalseに設定する必要があります。

注釈を作成:のMapView上

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" 
     }); 
    } 

クリック:テスト」 'clickイベント作品:

mapView.addEventListener("click", myFunction); 
+0

あなたはそれをどうやってやっているのかの例を聞くことができますか?私はボットが私の問題を解決していないイメージのカスタムビューを変更しようとしました。私は注釈のために定義されたタイトルを持つ必要があることを読んだ。タイトルがない場合は、クリックイベントはIOSで動作しません –

+0

私の回答を編集しました@Manuel_Rodrigues – HamidMly

+0

私は@HamidMlyを置いても問題は解決しません。クリックイベントはAndroidではなくIOSでのみ動作します。 clickイベントは、アノテーションのタイトルを定義する場合にのみ機能します。 –

関連する問題