溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

iOS培訓(xùn)教程——UITableViewCell的高亮和選中

發(fā)布時(shí)間:2020-08-04 03:45:22 來(lái)源:網(wǎng)絡(luò) 閱讀:1140 作者:藍(lán)鷗張浩 欄目:移動(dòng)開(kāi)發(fā)

由于時(shí)間的問(wèn)題,就給大家先少說(shuō)一點(diǎn)有關(guān)UITableViewCell的問(wèn)題,再說(shuō)如果寫的越多,也許會(huì)不能消化,那么還是少來(lái)點(diǎn)吧!

一起來(lái)看看UITableView的最重要的組成部分。

一、UITableViewCell的高亮和選中

當(dāng)我們打開(kāi)一個(gè)tableView的頁(yè)面,上面布滿了一個(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è)方法

iOS培訓(xùn)教程——UITableViewCell的高亮和選中

這兩個(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í)候,輸出如下:

iOS培訓(xùn)教程——UITableViewCell的高亮和選中

我們可以看出,當(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í),輸出如

下:

iOS培訓(xùn)教程——UITableViewCell的高亮和選中

通過(guò)截圖我們可以看出,前兩布還是和第一次點(diǎn)擊cell時(shí)類似,但是緊接著是首先設(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),下面是代碼片段,如圖:

iOS培訓(xùn)教程——UITableViewCell的高亮和選中

如圖所示,左邊是正常情況下,右邊是選中狀態(tài)下:

iOS培訓(xùn)教程——UITableViewCell的高亮和選中

如果有說(shuō)的不對(duì)的地方,希望大家能夠給我指出來(lái),也歡迎和各位大師一起討論關(guān)于iOS開(kāi)發(fā)方面的知識(shí),還可繼續(xù)關(guān)注我,藍(lán)鷗講師——張浩!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI