UITableViewのセルの詳細

私は UITableView UILabel と同期させて、同じデータを確実に表示しようとしています。もちろん、物事は最終的に異なるでしょうが、これをテストするためには私がする必要があります。

enter image description here

矢印を参照してください?私は中間のセル(px44-88から)が UILabel cell.textLabel.text を表示するようにしたいと思います。

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)forRowAtIndexPath:(NSIndexPath *)indexPath を使ってみましたが、誰かがこれを行うより良い方法を持っているかどうか尋ねる。違いがあるかどうかは分かりませんが、 NSFetchedResultsController を使用して UITableView を設定しています。

2

1 答え

UITableViewはUIScrollViewのサブクラスなので、おそらくUIScrollViewDelegateを使用することができます

- (void)scrollViewDidScroll:(UIScrollView *)scrollView

どのセルが現在の中央にあるかを検出する。

私。セクションがないプレーンテーブルがあり、tableViewがテーブルのアウトレットであると仮定すると、labelはラベルのコンセントです。これはコントローラで機能するよりも機能します:

    - (void)scrollViewDidScroll:(UIScrollView *)scrollView {
        int row = (scrollView.contentOffset.y + tableView.frame.size.height/2)/44;

        NSIndexPath *indexPath = [NSIndexPath indexPathForRow:row inSection:0];

        UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
        label.text = cell.textLabel.text;
}

もちろん、それを動作させるにはスクロールをする必要があります;)

visibleCellsメソッドを使用して、非プレーンな表の可視セルのレイアウトを取得し、それを使用して表の中央にあるセルを検出できます。

2
追加された
詳細を教えていただけますか?
追加された 著者 Baub,