这是一个类似于 QQ 界面下拉刷新的效果,界面以一张图片代替,主体代码很简单
- (void)viewDidLoad { [super viewDidLoad]; _imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 200)]; _imageView.image = [UIImage imageNamed:@"image.jpeg"]; UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 20, 320, 460)]; [scrollView addSubview:_imageView]; [self.view addSubview:scrollView]; scrollView.contentSize = CGSizeMake(320, 1000); scrollView.delegate = self; } //这是个代理方法,当滚动视图在滚动的时候触发 - (void)scrollViewDidScroll:(UIScrollView *)scrollView { if (scrollView.contentOffset.y < 0) { // 0+scrollView.contentOffset.y y 方向的坐标在原来的基础上加上滚动视图的偏移量,目的是保证图片相对于窗口的位置不变 //这里加了一个判断的条件是图片只在下拉的时候变形 //scrollView.contentOffset.y*2 变形的程度是纵向偏移量的 2 倍 _imageView.frame=CGRectMake(0, 0+scrollView.contentOffset.y, 320, 200-scrollView.contentOffset.y*2); } // _imageView.frame=CGRectMake(0, 0+scrollView.contentOffset.y, 320, 200-scrollView.contentOffset.y*2); //如果不加判断条件,则当视图滚动的时候图片都会变形,当用户滑动视图,特别是纵向的偏移量为正值时也发生变形,这是不符合用户预期的。 }