这是一个愚蠢的行为。我有一个以编程方式添加自定义TableViewRows的TableView。它们是自定义的,因为它们具有左对齐标签和右对齐开关(将其视为浏览过滤器)。我在顶部插入了相同类型的行,以编程方式打开/关闭所有开关。
当我有更多的行而不是屏幕上的行并尝试切换所有行时,所有这些都按预期工作。在这种情况下,当加载视图时,自定义行无法在屏幕外切换,因此在以编程方式处理时不会触发更改后的事件。
如果我手动滚动到底部强制渲染所有行然后尝试切换所有行,它就可以正常工作。
有没有办法在视图加载时强制渲染所有TableView行(甚至是屏幕外的那些行)?或者有一种我可以忍受的解决方法吗?
答案 0 :(得分:0)
这是我目前的解决方法。在OnOpen窗口事件中,我调用我的函数来初始化表数据。这很重要,因为这可以确保第一次加载。
然后我强制scrollToIndex到最后一行,然后立即scrollToIndex回到第一行。由于我在添加行后立即执行此操作,因此我需要使用setTimeout来确保它涵盖加载时间。
setTimeout(function() {
$.tblOptions.scrollToIndex(lastIndex, { animated: false, position: Titanium.UI.iPhone.TableViewScrollPosition.BOTTOM });
}, 0);
由于这会产生令人兴奋的用户体验,因此我会在加载期间隐藏表格,显示活动指示符,然后在加载后重新显示表格。
这将暂时有用,但我仍然想知道是否有更简单的解决方案。