Ios 同时滚动两个UITableView

Ios 同时滚动两个UITableView,ios,uitableview,scroll,Ios,Uitableview,Scroll,我有一个,父“ListViewController”,带有mainTable和menuTable声明。 我还有两个实现“ListViewController”的控制器“MenuController”和“MainController”。每个都有自己的故事板,但多亏了ECSlidingViewController(facebook菜单效果),我可以在一个屏幕上看到这两个。MenuController具有menuTable,MainController具有mainTable。我希望mainTable与

我有一个,父“ListViewController”,带有mainTable和menuTable声明。 我还有两个实现“ListViewController”的控制器“MenuController”和“MainController”。每个都有自己的故事板,但多亏了ECSlidingViewController(facebook菜单效果),我可以在一个屏幕上看到这两个。MenuController具有menuTable,MainController具有mainTable。我希望mainTable与menuTable一起滚动。 问题是,在“ListViewController”中的
(void)scrollViewDidScroll:(UIScrollView*)scrollView
中,我只能设置当前滚动的表的contentOffset

ListViewController.h

@interface ListViewController : UIViewController {
IBOutlet UITableView *mainTable;
IBOutlet UITableView *menuTable;
}
ListViewController.m

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
self.mainTable.contentOffset = scrollView.contentOffset;;
// works only when I am scrolling mainTable, 
// but I need it when I am scrolling menuTable

}
@interface MenuController :  ListViewController <UITableViewDelegate, UITableViewDataSource>
{
...
}
@interface MainController :  ListViewController <UITableViewDelegate, UITableViewDataSource>
{
...
}
MenuController.m

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
self.mainTable.contentOffset = scrollView.contentOffset;;
// works only when I am scrolling mainTable, 
// but I need it when I am scrolling menuTable

}
@interface MenuController :  ListViewController <UITableViewDelegate, UITableViewDataSource>
{
...
}
@interface MainController :  ListViewController <UITableViewDelegate, UITableViewDataSource>
{
...
}
@接口菜单控制器:ListViewController
{
...
}
MainController.m

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
self.mainTable.contentOffset = scrollView.contentOffset;;
// works only when I am scrolling mainTable, 
// but I need it when I am scrolling menuTable

}
@interface MenuController :  ListViewController <UITableViewDelegate, UITableViewDataSource>
{
...
}
@interface MainController :  ListViewController <UITableViewDelegate, UITableViewDataSource>
{
...
}
@接口主控制器:ListViewController
{
...
}

如我所见,
ListViewController
是一个表的委托,因此仅为此UITableView调用了
scrollViewDidScroll:
。您应该在它的委托中跟踪第二个表的滚动,您可以在表和它的实际委托之间创建一个代理委托

@interface ProxyTableViewDelegate <UITableViewDelegate>

@property (nonatomic, strong) id<UITableViewDelegate> realDelegate;
- (instancetype)initWithRealDelegate:(id<UITableViewDelegate>)realDelegate;
- (void)scrollViewDidScroll:(UIScrollView *)scrollView;

@end

@implementation ProxyTableViewDelegate

- (instancetype)initWithRealDelegate:(id<UITableViewDelegate>)realDelegate
{
    if (self = [super init]) {
        self.realDelegate = realDelegate;
    }
    return self;
}

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    // Custom actions ...

    if ([self.realDelegate respondsToSelector:@selector(scrollViewDidScroll:)])
        [self.realDelegate scrollViewDidScroll:scrollView];
}

- (void)forwardInvocation:(NSInvocation *)invocation
{
    [invocation invokeWithTarget:self.realDelegate];
}

@end

我是一个新手,我不能处理这个问题:/你能给我一些与我的例子相关的额外细节吗?我应该把这个代码放在哪里,以及如何使它一起工作?谢谢这是一个非常有用的回答!谢谢。看起来您只需将
scrollView
self.mainTable
self.menuTable
中的
scrollViewDidScroll
进行比较。