重用機(jī)制原理

重用池:2個(gè)NSMutableSet的隊(duì)列秦踪,一個(gè)等待使用隊(duì)列掷伙,一個(gè)使用中的隊(duì)列检柬。

自定義的重用池使用方法:

      DSQViewReusePool *pool=[DSQViewReusePool new];// 懶加載或只初始化一次使用
      [pool reset];// 標(biāo)記所有視圖為可重用狀態(tài)

自定義的DSQViewReusePool.h類:

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
 
@interface DSQViewReusePool : NSObject
// 從重用池當(dāng)中取出一個(gè)可重用view
- (UIView *)dequeueReuseableView;
// 向重用池中添加一個(gè)視圖
- (void)addUseingView:(UIView *)view;
// 重置方法婿斥,將當(dāng)前使用中的視圖移動(dòng)到可重用隊(duì)列中
- (void)reset;
@end
 
NS_ASSUME_NONNULL_END

自定義的DSQViewReusePool.m類:

#import "DSQViewReusePool.h"
@interface DSQViewReusePool()
@property (nonatomic, strong) NSMutableSet *waitUsedQueue;// 等待使用的對(duì)立
@property (nonatomic, strong) NSMutableSet *usingQueue;// 使用中的隊(duì)列
 
@end
@implementation DSQViewReusePool
- (instancetype)init {
    self=[super init];
    if (self) {
        _waitUsedQueue=[NSMutableSet set];
        _usingQueue=[NSMutableSet set];
    }
    return self;
}
 
// 從重用池當(dāng)中取出一個(gè)可重用view
- (UIView *)dequeueReuseableView {
    UIView *view=[_waitUsedQueue anyObject];
    if (!view) {
        return nil;
    } else {
        // 進(jìn)行隊(duì)列移動(dòng)
        [_waitUsedQueue removeObject:view];
        [_usingQueue addObject:view];
        return view;
    }
}
// 向重用池中添加一個(gè)視圖
- (void)addUseingView:(UIView *)view {
    if (!view) {
        return;
    }
    // 添加視圖到使用各種的隊(duì)列
    [_usingQueue addObject:view];
}
// 重置方法,將當(dāng)前使用中的視圖移動(dòng)到可重用隊(duì)列中
- (void)reset {
    UIView *view=nil;
    while ((view=[_usingQueue anyObject])) {
        // 從使用中隊(duì)列移除
        [_usingQueue removeObject:view];
        // 加入等待使用隊(duì)列
        [_waitUsedQueue addObject:view];
    }
}
@end
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末巴粪,一起剝皮案震驚了整個(gè)濱河市通今,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌肛根,老刑警劉巖衡创,帶你破解...
    沈念sama閱讀 222,946評(píng)論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異晶通,居然都是意外死亡璃氢,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,336評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門狮辽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來一也,“玉大人,你說我怎么就攤上這事喉脖∫叮” “怎么了?”我有些...
    開封第一講書人閱讀 169,716評(píng)論 0 364
  • 文/不壞的土叔 我叫張陵树叽,是天一觀的道長(zhǎng)舆蝴。 經(jīng)常有香客問我,道長(zhǎng)题诵,這世上最難降的妖魔是什么洁仗? 我笑而不...
    開封第一講書人閱讀 60,222評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮性锭,結(jié)果婚禮上赠潦,老公的妹妹穿的比我還像新娘。我一直安慰自己草冈,他們只是感情好她奥,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,223評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著怎棱,像睡著了一般哩俭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上拳恋,一...
    開封第一講書人閱讀 52,807評(píng)論 1 314
  • 那天凡资,我揣著相機(jī)與錄音,去河邊找鬼诅岩。 笑死讳苦,一個(gè)胖子當(dāng)著我的面吹牛带膜,可吹牛的內(nèi)容都是我干的吩谦。 我是一名探鬼主播鸳谜,決...
    沈念sama閱讀 41,235評(píng)論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼式廷!你這毒婦竟也來了咐扭?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,189評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤滑废,失蹤者是張志新(化名)和其女友劉穎蝗肪,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蠕趁,經(jīng)...
    沈念sama閱讀 46,712評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡薛闪,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,775評(píng)論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了俺陋。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片豁延。...
    茶點(diǎn)故事閱讀 40,926評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖腊状,靈堂內(nèi)的尸體忽然破棺而出诱咏,到底是詐尸還是另有隱情,我是刑警寧澤缴挖,帶...
    沈念sama閱讀 36,580評(píng)論 5 351
  • 正文 年R本政府宣布袋狞,位于F島的核電站,受9級(jí)特大地震影響映屋,放射性物質(zhì)發(fā)生泄漏苟鸯。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,259評(píng)論 3 336
  • 文/蒙蒙 一棚点、第九天 我趴在偏房一處隱蔽的房頂上張望倔毙。 院中可真熱鬧,春花似錦乙濒、人聲如沸陕赃。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,750評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽么库。三九已至,卻和暖如春甘有,著一層夾襖步出監(jiān)牢的瞬間诉儒,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,867評(píng)論 1 274
  • 我被黑心中介騙來泰國(guó)打工亏掀, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留忱反,地道東北人泛释。 一個(gè)月前我還...
    沈念sama閱讀 49,368評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像温算,于是被迫代替她去往敵國(guó)和親怜校。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,930評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • 今天感恩節(jié)哎注竿,感謝一直在我身邊的親朋好友茄茁。感恩相遇!感恩不離不棄巩割。 中午開了第一次的黨會(huì)裙顽,身份的轉(zhuǎn)變要...
    迷月閃星情閱讀 10,576評(píng)論 0 11
  • 彩排完,天已黑
    劉凱書法閱讀 4,236評(píng)論 1 3
  • 表情是什么宣谈,我認(rèn)為表情就是表現(xiàn)出來的情緒愈犹。表情可以傳達(dá)很多信息。高興了當(dāng)然就笑了闻丑,難過就哭了漩怎。兩者是相互影響密不可...
    Persistenc_6aea閱讀 125,403評(píng)論 2 7