如何在添加到 UIViewController 的 tableView 上使用 UIScrollViewDelegate 方法?

How to use UIScrollViewDelegate methods on a tableView added to a UIViewController?

我们如何在添加到 UIViewController 的 tableView 上使用 UIScrollViewDelegate 方法?当我将 UITableViewController 子类化时它工作正常,但在我的例子中,tableView 添加在 UIViewController 中。委托和数据源链接到 self,我添加了 UIScrollViewDelegate 作为协议,但 viewController 无法识别委托方法。

谢谢

UITableViewDelegate 继承自 UIScrollViewDelegate。 如果您确定该对象是 table 视图的委托,那么它也是 scrollView 的委托。

以下是分两步完成此操作的方法:

ViewController.h

您的 UIViewController 必须同时实现 UITableViewDelegateUIScrollViewDelegate。如果您正在使用界面生成器,您还将有一个 IBOutlet 用于 UITableView:

@interface ViewController : UIViewController<UITableViewDelegate, UIScrollViewDelegate>

@property (strong, nonatomic) IBOutlet UITableView *tableView;

ViewController.m

在您的实现代码中,您必须指定 ViewControllertableview 的委托。您还需要实现 UIScrollView 的委托方法之一以通知滚动:

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    self.tableView.delegate = self;
}

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    NSLog(@"Scrollview did scroll");
}