tableView的Header下拉放大

下拉放大

在項目中我們有時候想實現(xiàn)tableView的Header下拉放大的效果,自己沒有能力就經常用到第三方,很是麻煩,今天總結了兩種自己用很少代碼就能實現(xiàn)這種效果的方法,一起來看一下吧

首先設置表視圖的頭視圖,并遵守<UIScrollViewDelegate>代理協(xié)議

    //要縮放的頭部圖片
    self.imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"photo"]];
    // 設置tableView頭部視圖,必須設置頭部視圖背景顏色為clearColor,否則會被擋住
    self.imageView.frame = CGRectMake(0, 0, self.view.frame.size.width, 200);
    [self.tableView insertSubview:self.imageView atIndex:0];
    //插入頭部視圖
    UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 0, 200)];
    headerView.backgroundColor = [UIColor clearColor];
    self.tableView.tableHeaderView = headerView;

方法一、拿到scrollview的偏移量計算下拉imageview的frame,使其imageview的寬高增大。上拉的時候恢復原來的frame

-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
    // 獲取當前偏移量
    CGFloat offsetY = scrollView.contentOffset.y;
    if (offsetY < 0) {
        self.imageView.frame = CGRectMake(offsetY, offsetY, scrollView.bounds.size.width - offsetY * 2, 200 - offsetY);
    } else {
        self.imageView.frame = CGRectMake(0, 0, scrollView.bounds.size.width, 200);
    }
}

方法二、再向上拉的過程中要保證imageview不會進行縮放,只是改變下imageview的y軸的值

-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
    CGFloat offsetY = scrollView.contentOffset.y + scrollView.contentInset.top;
    CGFloat scale = 1.0;
    if (offsetY < 0) {
        //向下拉
        scale = MIN(2.5, 1 - offsetY / 200);
        //運用CGAffineTransformMakeScale使imageview縮放
        self.imageView.transform = CGAffineTransformMakeScale(scale, scale);
        CGRect frame = self.imageView.frame;
        frame.origin.y = offsetY;
        self.imageView.frame = frame;
    }else if(offsetY > 0){
        //向上拉
        CGRect frame = self.imageView.frame;
        frame.origin.y = -offsetY/200;
        self.imageView.frame = frame;
    }
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 發(fā)現(xiàn) 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 15,414評論 4 61
  • d326f260425a閱讀 107評論 0 1
  • 文/木易每文 認識鄭小北的時候,我們都還穿著開襠褲,一起玩著泥巴,互相把對方弄得人不像人鬼不像鬼,然后各自回家,等...
    木易每文閱讀 1,026評論 14 10
  • 第一次看見這本書的時候就想翻開看看,就這樣,它成了老劉送我的第一份禮物,傳遞著他小心思的信物。 近來,一個人在家?guī)?..
    Ellen的小小世界閱讀 543評論 0 50
  • 人活著,不應該折騰。 踏踏實實的,平平順順的,過好一輩子的日子。 人活著,就應該折騰。 全力以赴的,永不言棄的,做...
    li3wei閱讀 341評論 0 1

友情鏈接更多精彩內容