iOS开发 | 几行代码实现tableView下拉放大表头图片
2017-05-31 本文已影响690人
无夜之星辰
允儿卖萌
背景:
一个很常见的效果,如果这个tableView不需要下拉刷新并且想避免下拉时展示空白背景时可以采用。
效果如下:
效果展示.gif思路:
从结构来看这张图应该是tableView的表头,即tableHeaderView
。当我们向下拉tableView的时候,改变了tableView的contentOffset
,将这个contentOffset
与表头图片的frame关联起来即可实现下拉放大图片。
参考代码:
1.设置tableView的表头
self.imageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, self.view.width, 200)];
self.imageView.image = [UIImage imageNamed:@"允儿.jpg"];
self.imageView.contentMode = UIViewContentModeScaleAspectFill; // 按比例填充,很关键
// 设置表头
self.tableView.tableHeaderView = self.imageView;
2.在scrollViewDidScroll:
方法中进行逻辑处理
// 控制表头图片的放大
if (scrollView.contentOffset.y < 0) {
// 向下拉多少
// 表头就向上移多少
self.imageView.y = scrollView.contentOffset.y;
// 高度就增加多少
self.imageView.height = 200 + fabs(scrollView.contentOffset.y);
}else{
// 复原
self.imageView.y = 0;
self.imageView.height = 200;
}
会喊666.gif