在表格行上单击打开地图注释?在钛上

时间:2012-09-03 10:38:47

标签: uitableview titanium mkannotationview

我是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 []是我的注释数组。

我的目标是打开与我单击的表行的索引相对应的注释。 上面的代码没有实现任何目标。我认为触发注释的“点击”事件会打开注释,但显然我错了。

有人可以帮助我吗?任何帮助将非常感激。

2 个答案:

答案 0 :(得分:0)

如果您使用Android,则不支持注释的点击事件。更加跨平台的方法是在MapView本身上触发click事件。

但是如果你使用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);

答案 1 :(得分:0)

解决了!缺乏更彻底的文档阅读!

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

这将打开相应的注释。