實(shí)現(xiàn)tableView雙滾動(dòng)

即最靠近屏幕中心的cell顯示行高最大, 越遠(yuǎn)離越小

自定義cell類中
正常創(chuàng)建imageview, 但, 注意上下的約束, 上超出contentview20, 下超出80

[_imageViewOfPic mas_makeConstraints:^(MASConstraintMaker *make) {
    
    make.left.right.mas_equalTo(self.contentView).offset(0);
    
    make.top.mas_equalTo(self.contentView).offset(-20);
    make.bottom.mas_equalTo(self.contentView).offset(80);
    
}];

自己封裝一個(gè)方法, 改變圖片的frame, 然后在.h聲明出去
- (void)cellOnTableView:(UITableView *)tableView didScrollView:(UIView *)view{

  // 將cell的frame轉(zhuǎn)換成view的Frame(為了獲取每個(gè)cell的Y值)
  CGRect rect = [tableView convertRect:self.frame toView:view];

  //視圖的frame的一半 減去 所看到的每個(gè)CellY值(獲取滾動(dòng)的值)
  //以屏幕中心點(diǎn)為0點(diǎn) 獲取能看到的每個(gè)Cell離中心點(diǎn)得值是多少
  float distanceCenter = CGRectGetHeight(view.frame) / 2 - CGRectGetMinY(rect);

  // 圖片高度 - cell的高度 (獲取圖片超出cell高度部分)圖片肯定要比cell大,否則不會(huì)有視覺差效果
  float difference = CGRectGetHeight(self.imageViewOfPic.frame) - CGRectGetHeight(self.frame);

   float imageMove = (distanceCenter /  CGRectGetHeight(view.frame)) *difference;

    //舊的圖片frame
  CGRect imageRect = self.imageViewOfPic.frame;

   //移動(dòng)
   imageRect.origin.y = imageMove - (difference / 2);

   //新的圖片frame
   self.imageViewOfPic.frame = imageRect;

}

在vc中兩個(gè)tableView的協(xié)議方法照寫, 但是多一個(gè)scollView的滾動(dòng)監(jiān)聽
#pragma mark - 滾動(dòng)監(jiān)聽
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{

    //獲取表視圖的可見單元格(可見的視圖)
    NSArray *visibleCells = [self.tableView visibleCells];

    for (NAMinePicTableViewCell *cell in visibleCells) {
    
        //可見視圖設(shè)置->背景圖片y值
        [cell cellOnTableView:self.tableView didScrollView:self.view];
    
    }

}

感謝http://www.itdecent.cn/p/2826bffb517e 的分享, 我是用純代碼寫的, 都一樣

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.badgeVaule氣泡提示 2.git終端命令方法> pwd查看全部 >cd>ls >之后桌面找到文件夾內(nèi)容...
    i得深刻方得S閱讀 4,980評(píng)論 1 9
  • 概述在iOS開發(fā)中UITableView可以說是使用最廣泛的控件,我們平時(shí)使用的軟件中到處都可以看到它的影子,類似...
    liudhkk閱讀 9,299評(píng)論 3 38
  • 第三課 駱駝祥子(選段) 老舍是我們北京本地的大作家,他最著名的作品除了《四世同堂》就是今天我們要讀的《駱駝祥子》...
    田源ty閱讀 2,506評(píng)論 0 3
  • 01 想了很久,我覺得我還是應(yīng)該給你寫封信,表達(dá)一下我對(duì)你的想念,表達(dá)一下我對(duì)你的期待。 最近看了朱生豪的情書,讓...
    Summer昕小張閱讀 1,518評(píng)論 1 1
  • 死亡 是一件很大的事情嗎 我想 可能死亡本身并不重要 當(dāng)新聞在播報(bào)某處發(fā)生車禍死傷多少的時(shí)候 有人在像往常一樣排隊(duì)...
    比目的一條魚閱讀 458評(píng)論 0 1

友情鏈接更多精彩內(nèi)容