0

私は Titanium を初めて使用し、Titanium を使用して最初の iOS アプリを作成中ですが、ユースケースで壁にぶつかりました。

テーブル ビューの特定の行をクリックして、マップ上の注釈を開こうとしています。私はこれであまり成功しておらず、オンラインでヘルプを見つけることができませんでした. これは不可能ですか、それとも私が何か間違ったことをしているだけですか? 以下は私のコードです:

table.addEventListener('click', function (event) {
    Ti.API.info("Index of row that is clicked: "+event.index);
    globals.annos[event.index].fireEvent('click');
});

'table' は一連の行を持つ TableView であり、global.annos[] は注釈の配列です。

私の目的は、クリックしたテーブル行のインデックスに対応する注釈を開くことです。上記のコードは何も達成しません。注釈の「クリック」イベントを起動すると注釈が開くと思っていましたが、明らかに間違っていました。

誰かがここで私を助けてくれますか? どんな助けでも大歓迎です。

4

2 に答える 2

0

解決しました!ドキュメントをより完全に読むことの欠如!

mapview.selectAnnotation(globals.annos[event.index]);

これにより、対応する注釈が開きます。

于 2012-09-04T10:33:00.223 に答える
0

Android を使用している場合、注釈のクリック イベントはサポートされていません。よりクロス プラットフォームのアプローチは、MapView 自体でクリック イベントを発生させることです。

ただし、iOS を使用している場合、クリック イベントが正しく設定されていないため、ドキュメントに従って、クリックする注釈のどの部分を定義する必要があります。

On iOS, if the user clicks on the pin or annotation, the clicksource is one of: pin, annotation, leftButton, rightButton, leftView, rightView, title, or subtitle. If the user deselects the annotation by clicking elsewhere in the map view, clicksource is null.

eventまた、合成されたイベントのプロパティを定義するオブジェクトを渡しませんでした。テーブルイベントリスナー内でこれを試してください:

var event = {
    source : table,
    type : 'click',
    clicksource : 'pin'
};
globals.annos[event.index].fireEvent('click', event);
于 2012-09-03T15:13:40.270 に答える