第一步: 布置需要放大的TopView:
1. 创建TopView
UIImageView *topView = [[UIImageView alloc] init];
2. 设置图片
UIImage *image = [UIImage imageNamed:@"Big.jpg"]; topView.image = image;
3. 设置TopView的初始位置及内容模式
// 初始位置 topView.frame = CGRectMake(0, -TopViewH, ScreenW, TopViewH); topView.contentMode = UIViewContentModeScaleAspectFill;
4. 设置内边距让TableView的contentView往下移动
self.tableView.contentInset = UIEdgeInsetsMake(TopViewH / 2, 0, 0, 0);
5. 将TopView插入TableView的最下面(contentView下面)
[self.tableView insertSubview:topView atIndex:0]; self.topView = topView;
第二步: 实现下拉放大:
1. 通过代理方法:scrollViewDidScroll:实现下拉放大
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
2. 获取下拉距离
CGFloat downDistance = -TopViewH / 2 - scrollView.contentOffset.y;
3. 根据下拉距离放大TopView
if (downDistance >= 0) { self.topView.transform = CGAffineTransformMakeScale(1 + downDistance * 0.005, 1 + downDistance * 0.005); // 0.005 -> 放大系数 }