我想做的是。
- 覆盖 scrollView 的委托方法(例如,scrollViewDidEndDragging)
- 将它用于我的 scrollView 和 tableView
我现在拥有的是,
- MyScrollView 的委托覆盖 scrollViewDidEndDragging
- MySuperTableViewController(UITableView 的子类)覆盖scrollViewDidEndDragging,并让MyChildTableViewController 子类化MySuperTableViewController
显然,相同的 scrollViewDidEndDragging 代码在两个地方重复,我如何将代码放在一个地方并共享它?
以下是我想为我的 scrollView 和 tableView 分享的代码
#import "OverlayTableViewController.h"
@interface OverlayTableViewController()
{
CADisplayLink *_displayLink;
}
@end
@implementation OverlayTableViewController
-(void)scrollViewWillBeginDragging:(UIScrollView*)scrollView
{
[self startDisplayLinkIfNeeded];
}
- (void)scrollViewDidEndDragging:(UIScrollView*)scrollView willDecelerate:(BOOL)decelerate
{
if(!decelerate)
[self stopDisplayLink];
}
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
[self stopDisplayLink];
}
- (void)startDisplayLinkIfNeeded
{
if(!_displayLink)
{
_displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(display)];
[_displayLink addToRunLoop:[NSRunLoop mainRunLoop] forMode:UITrackingRunLoopMode];
}
}
- (void)stopDisplayLink
{
[_displayLink invalidate];
_displayLink = nil;
}
- (void)display
{
//
}
@end