如何在添加到 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
必须同时实现 UITableViewDelegate
和 UIScrollViewDelegate
。如果您正在使用界面生成器,您还将有一个 IBOutlet
用于 UITableView
:
@interface ViewController : UIViewController<UITableViewDelegate, UIScrollViewDelegate>
@property (strong, nonatomic) IBOutlet UITableView *tableView;
ViewController.m
在您的实现代码中,您必须指定 ViewController
是 tableview
的委托。您还需要实现 UIScrollView
的委托方法之一以通知滚动:
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.tableView.delegate = self;
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
NSLog(@"Scrollview did scroll");
}
我们如何在添加到 UIViewController
的 tableView 上使用 UIScrollViewDelegate
方法?当我将 UITableViewController
子类化时它工作正常,但在我的例子中,tableView 添加在 UIViewController
中。委托和数据源链接到 self
,我添加了 UIScrollViewDelegate 作为协议,但 viewController 无法识别委托方法。
谢谢
UITableViewDelegate 继承自 UIScrollViewDelegate。 如果您确定该对象是 table 视图的委托,那么它也是 scrollView 的委托。
以下是分两步完成此操作的方法:
ViewController.h
您的 UIViewController
必须同时实现 UITableViewDelegate
和 UIScrollViewDelegate
。如果您正在使用界面生成器,您还将有一个 IBOutlet
用于 UITableView
:
@interface ViewController : UIViewController<UITableViewDelegate, UIScrollViewDelegate>
@property (strong, nonatomic) IBOutlet UITableView *tableView;
ViewController.m
在您的实现代码中,您必须指定 ViewController
是 tableview
的委托。您还需要实现 UIScrollView
的委托方法之一以通知滚动:
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.tableView.delegate = self;
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
NSLog(@"Scrollview did scroll");
}