#pragma mark - ==============上拉下拉功能==============
-(void)panAction:(UIPanGestureRecognizer *)sender{
//判断条件自定义 kDEVICEHEIGHT: 自己定义的一个高度
if (self.tableView.frame.origin.y == kDEVICEHEIGHT- 130) {
NSLog(@"上拉");
//动画效果,3s内弹出tableView充满整个屏幕
[UIView animateWithDuration:0.3 animations:^{
self.alpha = 1.0;
[self.tableView setFrame:CGRectMake(0, 0, kDEVICEWIDTH, kDEVICEHEIGHT)];
//self.tableView.tableHeaderView = nil;
[self createHeaderView];
self.tableView.tableHeaderView.alpha = 1;
} completion:nil];
//设置pan手势禁止,避免与tableView上下滑动的冲突
sender.enabled = NO;
self.tableView.scrollEnabled = YES;
}
}
//scrollView的代理方法(tableView继承自scrollView)
-(void)scrollViewDidScroll:(UIScrollView *)scrollView {
//设置一个范围,避免tableView上拉过快直接实现下拉。
if (scrollView.contentOffset.y <=-80) {
//下拉手势开启 self.pan 定义的代码省略
self.pan.enabled = YES;
scrollView.scrollEnabled = NO;
NSLog(@"下拉");
[UIView animateWithDuration:0.3 animations:^{
self.alpha = 1.0;
[self.tableView setFrame:CGRectMake(0, kDEVICEHEIGHT - 130, kDEVICEWIDTH, kDEVICEHEIGHT)];
self.tableView.tableHeaderView.alpha = 0;
} completion:nil];
NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:0.2 repeats:NO block:^(NSTimer * _Nonnull timer) {
CGPoint point = CGPointMake(0, self.tableView.frame.origin.y - 180);
self.tableView.frame.origin = point;
self.tableView.tableHeaderView = nil;
}];
[[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];
}
}