iOS采用UITableView來(lái)實(shí)現(xiàn)Excel、課程表、汽車之家車輛參數(shù)對(duì)比的上下左右聯(lián)動(dòng)效果

引言

2016年12月份在項(xiàng)目中遇到了這種需求,當(dāng)時(shí)能參照的效果只有汽車之家,且沒(méi)有開(kāi)源的項(xiàng)目供參考,因此自己摸索了這種實(shí)現(xiàn)方式。早想將本方案呈現(xiàn)給大伙以供參考,無(wú)奈項(xiàng)目一直趕進(jìn)度,因此拖到了現(xiàn)在。提筆之時(shí)發(fā)現(xiàn)其他網(wǎng)友已經(jīng)貢獻(xiàn)了類似項(xiàng)目的實(shí)現(xiàn)思路,那么,大家可以綜合對(duì)比,擷取精華部分為自己所用。

需求描述

列表可以左右滑動(dòng),上下滾動(dòng),且能動(dòng)態(tài)增加刪除列表個(gè)數(shù)。

列表.jpeg

效果如下

列表左右上下滑動(dòng).gif

方案實(shí)現(xiàn)(2018-08-14重構(gòu))

1)視圖有兩部分組成:左側(cè)ConfigurationView和右側(cè)CompareDetailView;

2)CompareDetailView在視圖底層,寬度為綠色區(qū)域?qū)?,核心為UITableView,添加到UIScrollview上面,這樣就可實(shí)現(xiàn)上下和左右滑動(dòng);

3)ConfigurationView在視圖頂層,寬度為屏幕寬,核心為UITableview,且tableviewCell寬度為紅色區(qū)域?qū)挾取?/p>

注意點(diǎn)

ConfigurationView在CompareDetailView頂部是因?yàn)橐@示圖中灰色sectionHeader,
此時(shí)CompareDetailView被遮蓋且不能交互。因此將ConfigurationView里面的視圖設(shè)置為clearColor,還要重寫ConfigurationView的 - (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event 方法,來(lái)設(shè)置交互區(qū)域:圖中紅色區(qū)域。

- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event {
    if (CGPathIsEmpty(self.path.CGPath)) {
        return YES;
    } else if (CGPathContainsPoint(self.path.CGPath, nil, point, nil)) {
        return YES;
    } else {
        return NO;
    }
}
// 設(shè)置tableView的交互區(qū)域
UIBezierPath *path = [UIBezierPath bezierPathWithRect:CGRectMake(0, 0, ITEM_WIDTH, self.bounds.size.height)];
self.path = path;

結(jié)尾

本Demo是從項(xiàng)目中拆分整理而來(lái),如有問(wèn)題歡迎指正,若對(duì)你有所幫助,還望star支持下~
Demo下載地址UITableViewLinkage

最后編輯于
?著作權(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)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 廢話不多說(shuō),直接上干貨 ---------------------------------------------...
    小小趙紙農(nóng)閱讀 3,691評(píng)論 0 15
  • 概述在iOS開(kāi)發(fā)中UITableView可以說(shuō)是使用最廣泛的控件,我們平時(shí)使用的軟件中到處都可以看到它的影子,類似...
    liudhkk閱讀 9,316評(píng)論 3 38
  • 怎么說(shuō)呢,其實(shí)我早上走在路上都有一種感動(dòng)到想哭又想笑的復(fù)雜心情。不是因?yàn)檫@個(gè)數(shù)字,真的就是這份心意。那種被呵護(hù)被照...
    球球clover閱讀 217評(píng)論 0 1
  • MX禁閱讀 120評(píng)論 0 0
  • 我看呼蘭河傳,蕭紅說(shuō)“年是新的,日子卻總是舊的”,對(duì)我們來(lái)說(shuō)熱鬧是假的,熱鬧背后的孤獨(dú)寂寞才是真的。生存的痛苦是沒(méi)...
    小年與柒閱讀 289評(píng)論 0 1

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