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

这当然是可能的,但你为什么想要这个?表格视图垂直滚动,而页面控件具有水平布局,因此它可能看起来/感觉很奇怪。

无论如何,如果您真的想这样做,请将您的视图控制器添加为页面控件的目标:

[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 回答