0

Apple のサンプル「PageControl」から、UIPageControl を使用してスクロールビュー内のページの移動を制御できることがわかります。

UITableView は UIScrollView のサブクラスなので、UIPageControl を使用して、「PageControl」のようにテーブル ビュー セルの移動を制御したいと考えています。

しかし、それを行うためのデリゲートのインターフェイスが見つかりません。

質問は:

これを行うことは可能ですか?なぜ ?

ありがとう

私の質問に次のように答えさせてください。

プログラムによる選択とスクロール

コード リスト 6-5 プログラムによる行の選択

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)newIndexPath {
    NSIndexPath *scrollIndexPath;
    if (newIndexPath.row + 20 < [timeZoneNames count]) {
        scrollIndexPath = [NSIndexPath indexPathForRow:newIndexPath.row+20 inSection:newIndexPath.section];
    } else {
        scrollIndexPath = [NSIndexPath indexPathForRow:newIndexPath.row-20 inSection:newIndexPath.section];
    }
    [theTableView selectRowAtIndexPath:scrollIndexPath animated:YES
                        scrollPosition:UITableViewScrollPositionMiddle];
}
4

1 に答える 1

3

確かに可能ですが、なぜこれが必要なのですか? テーブル ビューは垂直方向にスクロールしますが、ページ コントロールは水平方向のレイアウトを持っているため、おそらく奇妙に見える/感じます。

とにかく、本当にこれを行いたい場合は、View Controller をページ コントロールのターゲットとして追加します。

[pageControl addTarget:self action:@selector(pageChanged:) forControlEvents:UIControlEventValueChanged];

次に、アクションにスクロールを実装します。

- (void)pageChanged:(UIPageControl *)sender {
    float scrollPosition = ((float)sender.currentPage / (float)sender.numberOfPages) * tableView.contentSize.height;
    [tableView scrollRectToVisible:CGRectMake(0, scrollPosition, 1, 1) animated:YES];
}
于 2011-05-13T07:48:44.853 に答える