[self.tableView addObserver:self forKeyPath:@"contentOffset" options:NSKeyValueObservingOptionOld|NSKeyValueObservingOptionNew context:nil];
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary*)change context:(void *)context{ CGPoint oldPoint = [change[@"old"] CGPointValue]; CGPoint newPoint = [change[@"new"] CGPointValue];// NSLog(@"%@",change); CGFloat newY = newPoint.y; CGFloat oldY = oldPoint.y; if ( newY - oldY > 0) { //判断 self.imageView.y -= newY; self.tableView.y = self.imageView.bottom; [self.tableView setContentOffset:CGPointMake(0, 0)]; } else if ( newY - oldY < 0) {// self.imageView.y = self.imageView.y - newY;// if (self.imageView.y >= 0) {// self.imageView.y = 0;// }// self.tableView.y = self.imageView.bottom; self.imageView.y -= newY; self.tableView.y = self.imageView.bottom; [self.tableView setContentOffset:CGPointMake(0, 0)]; }}