CollectionView重用問題

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ù)討論交流

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

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容