github三方庫前100之BlocksKit

附上github地址。。https://github.com/zwaldowski/BlocksKit

簡(jiǎn)單來講,就是對(duì)開發(fā)所有控件進(jìn)行了block 封裝,個(gè)人覺得沒必要去深究,很初級(jí),但是作者寫代碼的這種精神非常不錯(cuò),這個(gè)地方,對(duì)他擴(kuò)展的uiview進(jìn)行分析。。其他的能夠用到的。。

直接進(jìn)入正題。使用方法如下


下邊分析三方庫方法,看看都寫了些什么

看他寫的方法得出,給UIview 增加類別,作用為增加點(diǎn)擊事件。。這里我們點(diǎn)擊- (void)bk_whenTapped:(void (^)(void))block; 進(jìn)入

- (void)bk_whenTouches:(NSUInteger)numberOfTouches tapped:(NSUInteger)numberOfTaps handler:(void (^)(void))block

{

if (!block) return;

UITapGestureRecognizer *gesture = [UITapGestureRecognizer bk_recognizerWithHandler:^(UIGestureRecognizer *sender, UIGestureRecognizerState state, CGPoint location) {

if (state == UIGestureRecognizerStateRecognized) block();

}];

gesture.numberOfTouchesRequired = numberOfTouches;

gesture.numberOfTapsRequired = numberOfTaps;

[self.gestureRecognizers enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {

if (![obj isKindOfClass:[UITapGestureRecognizer class]]) return;

UITapGestureRecognizer *tap = obj;

BOOL rightTouches = (tap.numberOfTouchesRequired == numberOfTouches);

BOOL rightTaps = (tap.numberOfTapsRequired == numberOfTaps);

if (rightTouches && rightTaps) {

[gesture requireGestureRecognizerToFail:tap];

}

}];

[self addGestureRecognizer:gesture];

}


發(fā)現(xiàn)只是添加了 手勢(shì)點(diǎn)擊事件,并將點(diǎn)擊事件通過block回調(diào)出來。。

真心少。。研究2個(gè)小時(shí)這個(gè)庫,總的來說,初級(jí),但是代碼規(guī)范和經(jīng)常非常值得學(xué)習(xí)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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