行の一部として含める方がはるかに簡単ではないでしょうか? そうしないと、ユーザーは一度に 1 行の情報しか見ることができず、これは設計が悪いと考えられます。
さらに重要なことは、ユーザーが画面の一番下の行をスクロールできないため、TableView の最後に多くのダミー テーブル行を追加しない限り、これは iOSでは機能しません!
このチュートリアルでは、カスタム テーブル行を作成する方法を示します。コメントやいいねボタンの画像を追加するための出発点として使用してください。固定位置の方法では、TableView コンポーネントをハッキングするか、変換を使用して一番下の行を一番上に移動する必要があるため、他に選択肢はありません。
編集:
このようにしなければならない場合、最善の方法は、ユーザーがコンテンツのある最後の行までずっとスクロールできるように、実際のテーブル行の終わりを過ぎていくつかの空白のテーブル行を追加することです (この方法で)固定位置はその上を検出できます)。
次に、3 つのボタンを保持するビューを作成し、ウィンドウ内の絶対位置を確認して (固定されたままにする)、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;
});
テーブルに実際の行オブジェクトがあるので、抽出できます
これは一般的な概要にすぎません。プラットフォーム間の違いの一部は考慮されていません。理解するのはあなたに任せますが、これは優れた一般的なアプローチです。