cell中處理多個button點擊cell重用后button點擊消失問題

最近在做一個關于問卷調查的功能,遇到了一個比較棘手的問題,就是我cell中有一個button點擊button進行選擇,然后改變button的顏色,但是cell上啦消失重用,回來之后原來的點擊改變,又恢復到默認,這一度讓我很惱火,后來這個問題終于解決了.于是寫下這個文章,以此來總結下,以后可能還會遇到同樣的問題.

1.圖解說下問題吧


這個是效果,當我點擊一個button變成如下圖片


變成這樣,但是往上拉取cell,cell消失,這個點擊效果又恢復到原來的默認效果

針對這個問題,總結了一下幾點:

1.首先,在model里面定義一個屬性,用來存儲點擊的button的tag值.再定義一個布爾值,用來判斷button的點擊事件

@property(nonatomic)BOOL ? isSelect;

@property(nonatomic)NSInteger tag;

2.cell中自定義一個block,用來傳輸你點擊的button的tag值

@property(nonatomic,strong)void(^clickButtonAction)(NSInteger ?tagg);

3.在button的點擊事件中實現(xiàn)這個block方法.

button的點擊效果中實現(xiàn)block方法

4.控制器內cell創(chuàng)建進行button的tag值和model相關聯(lián),如下圖:


這個要先賦值,然后傳模型,順序不能夠顛倒

5.回到cell的set方法里面,也就是model賦值.

在這之前,你要把你創(chuàng)建的button放到一個數(shù)組里面,并給他們賦予不同的tag值,因為這需要在set方法里面來判斷你點擊了哪一個button


遍歷這個button數(shù)組,判斷點擊那個button,然后讓model的那個布爾值等于button的selected這樣就好了

cell中button的創(chuàng)建,用for語句就可以了


button設置圖片,一個是默認的一個是點擊也就是selected的.


好了,這樣之后你再怎么弄就不會再消失了,希望有遇到這樣問題的朋友能夠對你們有所幫助.

如果只有一個button的話,那就只需要一個布爾值就可以了,點擊cell讓這個cell給這個button進行賦值就可以了,只需要在set方法里面讓button.selected = model.selected就可以了,也不需要button的點擊事件,然后在控制器里面,讓model.selected = !model.selected.這樣的幾步就可以了.

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

相關閱讀更多精彩內容

  • 前言 最近忙完項目比較閑,想寫一篇博客來分享一些自學iOS的心得體會,希望對迷茫的你有所幫助。博主非科班出身,一些...
    GitHubPorter閱讀 1,588評論 9 5
  • 1.badgeVaule氣泡提示 2.git終端命令方法> pwd查看全部 >cd>ls >之后桌面找到文件夾內容...
    i得深刻方得S閱讀 4,981評論 1 9
  • 2017.02.22 可以練習,每當這個時候,腦袋就犯困,我這腦袋真是神奇呀,一說讓你做事情,你就犯困,你可不要太...
    Carden閱讀 1,492評論 0 1
  • 前幾天,我們在市圖書館的一個文化講壇,現(xiàn)場聆聽了王剛老師的聲樂講座,他帶領我們共同領略聲樂藝術之美,淺談聲樂演唱的...
    林泉雲(yún)霞閱讀 572評論 0 1
  • 導語 花鳥畫講求情趣,不管是文人雅士的閑情逸趣,還是鄉(xiāng)村淳樸的野逸之趣,寓興抒情都是花鳥畫非常重要的功能。自古花鳥...
    駱駝計劃藝術閱讀 3,467評論 1 2

友情鏈接更多精彩內容