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


針對這個問題,總結了一下幾點:
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方法.

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

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

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

好了,這樣之后你再怎么弄就不會再消失了,希望有遇到這樣問題的朋友能夠對你們有所幫助.
如果只有一個button的話,那就只需要一個布爾值就可以了,點擊cell讓這個cell給這個button進行賦值就可以了,只需要在set方法里面讓button.selected = model.selected就可以了,也不需要button的點擊事件,然后在控制器里面,讓model.selected = !model.selected.這樣的幾步就可以了.