iOS實(shí)現(xiàn)無限循環(huán)滾動(dòng)的TableView實(shí)戰(zhàn)教程-創(chuàng)新互聯(lián)

前言

創(chuàng)新互聯(lián)建站于2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都做網(wǎng)站、成都網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元南川做網(wǎng)站,已為上家服務(wù),為南川各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18980820575

本文主要給大家介紹了如何實(shí)現(xiàn)一個(gè)可以無限循環(huán)的TableView的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),下面來一起看看詳細(xì)的介紹吧。

先來看看效果:

iOS實(shí)現(xiàn)無限循環(huán)滾動(dòng)的TableView實(shí)戰(zhàn)教程

思路

條條大路通羅馬,個(gè)人分析下以下思路的可行性:

     1、借鑒無限廣告輪播的思路??尚行圆桓撸饕橇斜眍^部和尾部的銜接不夠自然,而且快速滑動(dòng)不夠流暢。

     2、使用TableView+3倍長度dataSource??尚行砸话?,在使用過程中滑動(dòng)流暢,但是由于重復(fù)的數(shù)據(jù)源,可能導(dǎo)致在處理事件時(shí)需要特別對(duì)數(shù)據(jù)進(jìn)行處理避免重復(fù),另外此方法不能重用,總讓有強(qiáng)迫癥的人感覺不夠優(yōu)雅。。。

     3、使用TableView子類+數(shù)據(jù)源攔截器??尚行暂^高,在使用過程中滑動(dòng)流暢,而且在代理方法中并不需要做特殊處理,可封裝重用。

     4、廣大讀者們提供的更優(yōu)秀的思路。

實(shí)現(xiàn)

我們通過創(chuàng)建TableView的子類,在子類中對(duì)dataSource進(jìn)行處理。

如果直接將子類自身設(shè)為子類的dataSource,創(chuàng)建另外一個(gè)dataSource作為對(duì)外的delegate,將自身不處理的代理消息轉(zhuǎn)發(fā)給對(duì)外的delegate,這樣要求自身實(shí)現(xiàn)所有的代理方法,非常蛋疼。

因此,我們創(chuàng)建一個(gè)攔截器,通過攔截器決定將消息發(fā)送到TableView子類內(nèi)部或者是其dataSource,這樣簡(jiǎn)潔又比較優(yōu)雅(裝逼)。

注:使用此方法實(shí)現(xiàn)無限循環(huán)的TableView,需要對(duì)ObjC的消息轉(zhuǎn)發(fā)有一定理解。

1、創(chuàng)建3倍長度dataSource,并在滑動(dòng)到頭部或者尾部時(shí)進(jìn)行contentOffset的reset,顯示到中間的位置

- (void)layoutSubviews {
 [self resetContentOffsetIfNeeded];
 [super layoutSubviews];
}

- (void)resetContentOffsetIfNeeded {
 CGPoint contentOffset = self.contentOffset;
 //頭部
 if (contentOffset.y < 0.0) {
  contentOffset.y = self.contentSize.height / 3.0;
 }
 //尾部
 else if (contentOffset.y >= (self.contentSize.height - self.bounds.size.height)) {
  contentOffset.y = self.contentSize.height / 3.0 - self.bounds.size.height;
 }
 [self setContentOffset: contentOffset];
}

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站muchs.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

文章題目:iOS實(shí)現(xiàn)無限循環(huán)滾動(dòng)的TableView實(shí)戰(zhàn)教程-創(chuàng)新互聯(lián)
文章URL:http://muchs.cn/article32/heepc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、營銷型網(wǎng)站建設(shè)、域名注冊(cè)、網(wǎng)站設(shè)計(jì)、網(wǎng)站內(nèi)鏈、網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)