Skip to content

UITableViewで下に消えていったセルのindexPathを得る2

2011年7月13日

昨日作った物に、セルの大きさ次第で計算が狂うという事が分かり、改造しました。

    NSArray *visibleArray = [[NSArray alloc] initWithArray:[tableView_ indexPathsForVisibleRows]];
    NSString *viewText = [NSString string];

    if ([visibleArray count]) {
        NSIndexPath *visibleTopIndexPath = [[[NSIndexPath alloc] init] autorelease];
        visibleTopIndexPath = [visibleArray objectAtIndex:0];
        int i = visibleTopIndexPath.row;
        i = i + [visibleArray count];
//        if (i >= [dataSource_ count]) { 必要ないかも
//            i = i - 1;
//        }
        viewText = [dataSource_ objectAtIndex:i];
    }
    viewLabel_.text = viewText;

表示されているセルのindexPathindexPathForVisibleRowsで取り出して、
そこから、その表示されているセルのcountを足すことで、表示されているセルのもう一つ先のセルのindexPath.rowを得るという方法です。

ただこれをcellForRow〜に入れると、更新頻度が少ないせいで不具合が起きます。

なので、

– (void)scrollViewDidScroll:(UIScrollView *)scrollView

を書いて、その中に入れれば、リアルタイムでの数字取得ができる。

広告

From → iPhone開発

コメントする

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。