附上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í)