由于時(shí)間的問(wèn)題,就給大家先少說(shuō)一點(diǎn)有關(guān)UITableViewCell的問(wèn)題,再說(shuō)如果寫(xiě)的越多,也許會(huì)不能消化,那么還是少來(lái)點(diǎn)吧!
創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿(mǎn)足客戶(hù)于互聯(lián)網(wǎng)時(shí)代的南華網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!一起來(lái)看看UITableView的最重要的組成部分。
一、UITableViewCell的高亮和選中
當(dāng)我們打開(kāi)一個(gè)tableView的頁(yè)面,上面布滿(mǎn)了一個(gè)個(gè)cell,tableview允許我們通過(guò)datasource為這些
cell提供數(shù)據(jù),通過(guò)delegate來(lái)控制點(diǎn)擊cell時(shí)候如何響應(yīng)。查看UITableViewCell的幫助文檔我們可以
看到它有兩個(gè)屬性highLighted、selected。這兩者之間到底又怎么樣的聯(lián)系呢?當(dāng)我們點(diǎn)擊cell的時(shí)候
都發(fā)生了什么呢?要達(dá)到這個(gè)目的,很簡(jiǎn)單我們只要自定義一個(gè)cell繼承自UITableViewCell。
二、然后重載它的以下兩個(gè)方法
這兩個(gè)方法一個(gè)是設(shè)置cell的高亮狀態(tài),另一個(gè)是設(shè)置cell的選中狀態(tài),我們只需要在這兩個(gè)方法里面打印信息就可以看出點(diǎn)擊cell時(shí)這些狀態(tài)是怎么變化的了。
測(cè)試的程序很簡(jiǎn)單,直接重載了這兩個(gè)方法,打印設(shè)置的選中和高亮的狀態(tài)。當(dāng)我們點(diǎn)擊任何一個(gè)cell的時(shí)候,輸出如下:
我們可以看出,當(dāng)我們點(diǎn)擊cell的時(shí)候,其實(shí)是先設(shè)置cell的高亮狀態(tài)為YES,然后松手的時(shí)候再將cell
的高亮狀態(tài)設(shè)置為NO,接著才是設(shè)置cell的選中狀態(tài)為YES,最后才會(huì)去調(diào)用delegate中的
tableview:didSelectRowAtIndexPath:方法。
此處我們delegate的tableview:didSelectRowAtIndexPath:方法中只是做了打印(沒(méi)有遵照設(shè)計(jì)規(guī)范,在
該方法中取消選中),這個(gè)時(shí)候已經(jīng)有一個(gè)cell處于選中狀態(tài)時(shí),我們?cè)偃c(diǎn)擊另外一個(gè)cell時(shí),輸出如
下:
通過(guò)截圖我們可以看出,前兩布還是和第一次點(diǎn)擊cell時(shí)類(lèi)似,但是緊接著是首先設(shè)置前一個(gè)cell為非選中狀態(tài),然后在設(shè)置當(dāng)前點(diǎn)擊的cell為選中狀態(tài),最后再調(diào)用delegate的方法。為什么會(huì)先取消上一個(gè)cell的選中狀態(tài)呢?因?yàn)閠ableView默認(rèn)是不支持多選的,我們可以通過(guò)設(shè)置allowsMultipleSelection為YES來(lái)設(shè)置支持多選。
總結(jié)上面兩種情況,我們發(fā)現(xiàn)cell的高亮狀態(tài)是不能持久的,即tap的時(shí)候會(huì)變成高亮,松手的時(shí)候就會(huì)自動(dòng)設(shè)置為非高亮狀態(tài)。而cell的選中狀態(tài)則是可以持久的,我們不去觸發(fā)它改變狀態(tài),則選中狀態(tài)就不會(huì)改變。
通常cell非選中且非高亮狀態(tài)時(shí)候cell上的字體是黑色的,但是高亮或者選中狀態(tài)時(shí)我們可能希望改變字體的顏色為白色或者其他顏色,這個(gè)時(shí)候就可以通過(guò)重載這兩個(gè)方法來(lái)實(shí)現(xiàn),下面是代碼片段,如圖:
如圖所示,左邊是正常情況下,右邊是選中狀態(tài)下:
如果有說(shuō)的不對(duì)的地方,希望大家能夠給我指出來(lái),也歡迎和各位大師一起討論關(guān)于iOS開(kāi)發(fā)方面的知識(shí),還可繼續(xù)關(guān)注我,藍(lán)鷗講師——張浩!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線(xiàn),公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。
網(wǎng)頁(yè)標(biāo)題:iOS培訓(xùn)教程——UITableViewCell的高亮和選中-創(chuàng)新互聯(lián)
文章位置:http://www.rwnh.cn/article36/csjcpg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶(hù)體驗(yàn)、虛擬主機(jī)、ChatGPT、標(biāo)簽優(yōu)化、關(guān)鍵詞優(yōu)化、微信公眾號(hào)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容