NS_CLASS_AVAILABLE_IOS(6_0) UIRefreshControl 有个毛病有时会出bug 动画下拉就不动了,这里给出修复处理:
@interface UICollectionView (FixRefreshControlJump) @end
#import "UICollectionView+FixRefreshControlJump.h" #import <objc/runtime.h> @implementation UICollectionView (FixRefreshControlJump) + (void)load { Method originMethod = class_getInstanceMethod([UICollectionView class], @selector(setContentInset:)); Method newMethod = class_getInstanceMethod([UICollectionView class], @selector(setNewContentInset:)); method_exchangeImplementations(originMethod, newMethod); UIRefreshControl } - (void)setNewContentInset:(UIEdgeInsets)contentInset { if (self.tracking) { CGFloat diff = contentInset.top - self.contentInset.top; CGPoint translation = [self.panGestureRecognizer translationInView:self]; translation.y -= diff * 3.0 / 2.0; [self.panGestureRecognizer setTranslation:translation inView:self]; } if ([self respondsToSelector:@selector(setNewContentInset:)]) { [self setNewContentInset:contentInset]; } } @end
通过 method_exchangeImplementations swzing的方式处理问题
推荐阅读:
http://www.cnblogs.com/kesalin/archive/2012/01/05/objc_method_swizzling.html