从UITableView的子类访问UIScrollViewDelegate

时间:2011-11-02 18:05:11

标签: iphone objective-c ios uitableview uiscrollview

我正在开发一个项目,我必须使用 UITableViews 进行大量工作。所以,我想检测表视图( UIScrollView )是否正在滚动。

首先,我使用 UIViewController 中的 UIScrollViewDelegate 处理它,其中我的 UITableView 被添加为子视图。现在,为了保持代码干净,我想继承 UITableView ,在这个类中,我必须访问 UIScrollView 的委托方法,例如- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView

但我怎么能这样做?有可能吗?

2 个答案:

答案 0 :(得分:4)

您所要做的就是实施- (void)scrollViewDidScroll:(UIScrollView *)scrollView委托&检测滚动是否发生在UITableView或其他地方。

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    if(scrollView == self.tableView)
    {
        //your logic here
    }
    return;
}

答案 1 :(得分:2)

必须在类中定义那些UIScrollViewDelegate方法,该类是要处理滚动更改的tableview的委托。如果您将这些方法放在UITableView子类的实现文件中,那么您应该将tableview的委托设置为它自己:

[self setDelegate:self];

但是,您还必须在UITableViewDelegate子类中定义UITableViewDataSourceUITableView方法。如果要在项目中的多个位置使用UITableView子类,这可能会使事情变得复杂。如果我是你,我会仔细考虑我的设计并采取相应的行为。