我是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 []是我的注释数组。
我的目标是打开与我单击的表行的索引相对应的注释。 上面的代码没有实现任何目标。我认为触发注释的“点击”事件会打开注释,但显然我错了。
有人可以帮助我吗?任何帮助将非常感激。
答案 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]);
这将打开相应的注释。