iOS开发iOS之功能细节iOS程序猿

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

demo

GitHub Demo

上一篇 下一篇

猜你喜欢

热点阅读