collectionView
- 通過- (void)prepareForReuse是重用的屬性置空。
- 通過collectionViewCell下標(biāo)(indexPath.row)使cell不重用
- 通過判斷cell防止重用
下面看代碼
cell每次重用都會(huì)走著個(gè)方法 從這里面取出控件進(jìn)行重用, 我們可以重寫這個(gè)方法 ,將其控件置空就不會(huì)導(dǎo)致重用
- (void)prepareForReuse {
NSLog(@"MyCollection9999999%s --- %@", __func__, self);
}
- 通過cell下標(biāo)進(jìn)行防止重用效果
先寫一個(gè)bool類型進(jìn)行判斷的一個(gè)屬性

BF9AF3CA-2F58-4F8D-8A3D-C99B30005B0C.png
在collectionView點(diǎn)擊方法里面拿到當(dāng)前的cell
在將其bool類型的屬性將其取反使其沒點(diǎn)擊能有yes/no狀態(tài)

855C16E6-960A-4026-A5B9-9C272645CEBC.png
在將cell的屬性改成響應(yīng)的取反效果
cell其屬性:

5D081549-C0B9-4E74-B564-8AAA2398918C.png
在- (id)initWithFrame:(CGRect)frame方法里將屬性設(shè)置好

6F79DA84-24D0-4D1F-AD8D-C403521973F1.png
在常態(tài)的時(shí)候顯示常態(tài)狀態(tài)下的圖片
選中狀態(tài)下顯示選中時(shí)的圖片
接下來就是在cell創(chuàng)建的方法里- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
將bool類型行進(jìn)判斷

FA5E6ED8-0866-4033-8853-9845FABF7308.png
判斷YES/NO來改變其button狀態(tài)下顯示的圖片
每次上下拉cell的時(shí)候都會(huì)重用走這個(gè)方法點(diǎn)擊cell將其YES時(shí)每次Bool類型都是yes都會(huì)在響應(yīng)下標(biāo)下改變相對(duì)應(yīng)button的狀態(tài)不會(huì)造成重用的現(xiàn)象
- 第三種方法不推薦使用,他不會(huì)使cell重用,會(huì)拉cell一次都創(chuàng)建新的cell,使之前的cell不會(huì)重新利用,不會(huì)保留之前的狀態(tài)
新創(chuàng)建一個(gè)可變的字典
每次先從字典中根據(jù)indexPath取去唯一標(biāo)識(shí)
NSString *identifier=[NSString stringWithFormat:@"%ld%ld",(long)indexPath.section,(long)indexPath.row];
[collect registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:identifier];
UICollectionViewCell *cell=[collectionView dequeueReusableCellWithReuseIdentifier:identifier forIndexPath:indexPath];
for(id subView in cell.contentView.subviews){
if(subView){
[subView removeFromSuperview];
}
}
討論技術(shù)方法面加本人QQ251099939 技術(shù)討論交流