iOS 使用TableView实现下拉放大

第一步: 布置需要放大的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 -> 放大系数
}

 

 

Demo:https://github.com/BigPlane/DownMagnifyDemo

 

posted @ 2015-09-30 14:07  HappyPlane  阅读(1008)  评论(0编辑  收藏  举报