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

如果您使用的是 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);
于 2012-09-03T15:13:40.270 回答
0

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

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

这将打开相应的注释。

于 2012-09-04T10:33:00.223 回答