我这里需呀修改某个类的scrollViewDidScroll 代理方法的实现
用两种方案进行实现
一 继承 于该视图 该方案要确保父类 的该方法对外暴漏
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
[super scrollViewDidScroll:scrollView];
[self.mainTableView insertSubview:self.mainTableView.tableHeaderView atIndex:0];
}
二 使用分类替换方法实现
+ (void)load
{
Method originMethod =class_getInstanceMethod([GKPageScrollView class], @selector(scrollViewDidScroll:));
Method tpMethod =class_getInstanceMethod([GKPageScrollView class], @selector(tp_scrollViewDidScroll:));
//进行方法调用
method_exchangeImplementations(originMethod, tpMethod);
}
- (void)tp_scrollViewDidScroll:(UIScrollView *)scrollView
{
[self tp_scrollViewDidScroll:scrollView];
[self.mainTableView insertSubview:self.mainTableView.tableHeaderView atIndex:0];
}