【问题标题】:Access UIScrollViewDelegate from subclass of UITableView从 UITableView 的子类访问 UIScrollViewDelegate
【发布时间】:2011-11-02 18:05:10
【问题描述】:

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

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

但是我该怎么做呢?有可能吗?

【问题讨论】:

    标签: iphone objective-c ios uitableview uiscrollview


    【解决方案1】:

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

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

    【讨论】:

    • @qPaul 这需要放在你实现了UITableView 代码的.m 文件中。
    【解决方案2】:

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

    [self setDelegate:self];
    

    但是您还必须在 UITableView 子类中定义您的 UITableViewDelegateUITableViewDataSource 方法。如果您想在项目中不止一处使用UITableView 子类,这可能会使事情复杂化。如果我是你,我会仔细考虑我的设计并做出相应的行为。

    【讨论】:

      猜你喜欢
      • 2023-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-24
      • 2018-01-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多