ios fix UIRefreshControl bug

时间:2022-08-21 18:34:46

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