1、下拉刷新 实现原理

if (scrollView.contentOffset.y < -100) {

[UIView animateWithDuration:1.0 animations:^{

self.scrollView.contentInset = UIEdgeInsetsMake(100, 0, 0, 0);

} completion:^(BOOL finished) {

NSLog(@"发起下拉刷新");

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{

[UIView animateWithDuration:1.0 animations:^{

self.scrollView.contentInset = UIEdgeInsetsMake(0, 0, 0, 0);

}];

});

}];

}

2、上拉加载 实现原理

if (scrollView.bounds.size.height + scrollView.contentOffset.y >scrollView.contentSize.height) {

[UIView animateWithDuration:1.0 animations:^{

self.scrollView.contentInset = UIEdgeInsetsMake(0, 0, 50, 0);

} completion:^(BOOL finished) {

NSLog(@"发起上拉加载");

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{

[UIView animateWithDuration:1.0 animations:^{

self.scrollView.contentInset = UIEdgeInsetsMake(0, 0, 0, 0);

}];

});

}];

}