将它作为行的一部分包含在内不是更容易吗?否则用户一次只能看到一行信息,我认为这是不好的设计。
更重要的是,除非您在 TableView 的末尾添加大量虚拟表格行,否则这在 iOS 上不起作用,因为用户无法将最底部的行滚动到屏幕顶部!
本教程向您展示如何拥有自定义表格行。使用它作为添加您的评论和喜欢按钮图像的起点。我真的没有其他选择,因为您的固定位置方法需要破解 TableView 组件或使用转换将底行移动到顶部。
编辑:
如果您必须这样做,最好的方法是在实际表格行的末尾添加一些空白表格行,以便用户可以一直向下滚动到包含内容的最后一行(这种方式固定位置可以检测到它的上方)。
接下来创建包含三个按钮的视图,确保它在窗口中的绝对位置(因此它保持固定)并且 zIndex 大于 TableView:
var likeAndCommentHolderView = Ti.UI.createView({
top : 45,
left : 0,
//.... etc
zIndex : 101
});
window.add(likeCommentHolderView);
现在你必须弄清楚用户在哪一行结束。这可以使用scrollEnd
TableView 的事件并获取contentOffset
事件的属性来完成。'scrollEnd' 事件在用户完成滚动 tableView 中的行时触发,它返回一个具有 的事件,这只是衡量您从tableView顶部contentOffset
滚动了多少。使用简单的数学运算,计算偏移量除以 ,即用户正在查看的行索引。rowHeight
// Assume table view is at coordinates : top=45, left=0 and you have defined rowHeight
tableView.addEventListener('scrollEnd', function(e) {
// Use this to determine which row your over
var contentOffset = e.contentOffset;
// Figure out the index
var rowIndex = contentOffset / rowHeight;
// Get the row, assume first section
var section = tableView.data[0];
var rowObject = section.rows[rowIndex];
// Now update your UI with data from the row
var name = rowObject.restaurantName;
});
现在您在表中有实际的行对象,您可以提取
这只是一个大致的轮廓,这并没有考虑到平台之间的一些差异,我把它留给你去弄清楚,但这是一个很好的通用方法。