//下拉刷新 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); }]; }); }]; }
//上拉加载 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); }]; }); }]; }
#import "ViewController.h" @interface ViewController ()<UIScrollViewDelegate> @property (nonatomic, strong) UIScrollView * scrollView; @end @implementation ViewController - (UIScrollView *)scrollView { if (!_scrollView) { _scrollView = [[UIScrollView alloc] initWithFrame:self.view.bounds]; //contentSize是可滑动的区域 _scrollView.contentSize = CGSizeMake(0, 900); _scrollView.backgroundColor = [UIColor grayColor]; _scrollView.delegate = self; //greenView实际上就是UIScrollView的content View UIView * greenView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, 900)]; greenView.backgroundColor = [UIColor greenColor]; [_scrollView addSubview:greenView]; } return _scrollView; } - (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView { //下拉刷新-当下拉刷新时,contentOffset实际上就是greenView相对于屏幕左上角的偏移量。 if (scrollView.contentOffset.y < -100) { [UIView animateWithDuration:1.0 animations:^{ self.scrollView.contentInset = UIEdgeInsetsMake(100, 0, 0, 0); } completion:^(BOOL finished) { NSLog(@"发起下拉刷新"); //设置延时时间为2秒 dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ [UIView animateWithDuration:1.0 animations:^{ //恢复之前的contentInset,让greenView回到原来的地方 self.scrollView.contentInset = UIEdgeInsetsMake(0, 0, 0, 0); }]; }); }]; } //上拉加载 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); }]; }); }]; } } - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. [self.view addSubview:self.scrollView]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end