ios fix UIRefreshControl bug

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

时间: 2024-08-30 02:27:02

ios fix UIRefreshControl bug的相关文章

快速定位iOS线上BUG在哪个控制器崩溃

快速定位iOS线上BUG在哪个控制器崩溃 快速定位iOS线上App崩溃在哪个控制器里面,需要和后台配合使用 下载本项目并添加手动添加到项目里 新建所有的页面都继承于YZViewController 在AppDelegate的didFinishLaunchingWithOptions方法里面写下如下代码: if ([[[NSUserDefaults standardUserDefaults] valueForKey:@"BUG"] isKindOfClass:[NSDictionary

iOS开发常见BUG和一些小技巧(ps:耐心看完,很实用)

[385][scrollView不接受点击事件,是因为事件传递失败] // // MyScrollView.m // Created by beyond on 15/6/6. // Copyright (c) 2015年 beyond.com All rights reserved. // 不一定要用继承,可以使用分类 #import MyScrollView.h #import CoView.h @implementation MyScrollView - (void)touchesBegan

iOS 数值越界bug

这个bug怎么发现的呢? 由于是个人开发,一直以来没有打测试包,直接跑真机或者模拟器,没有出现过这个bug,直到...老板说要安卓的小伙伴给他打个测试包,我想着,我也打个测试包试下,于是,bug 就出来了... 我先选的debug + development 模式打的包,能安装,注册登录都可以,就是内页有几个页面,本来有数据的,却没数据. 我想着是不是打包的方式不对啊,又打了个 release + adHoc的包,咦,也一样呢. 细看代码,代码里的接口啥的没有区分debug和release模式,

ios 最新系统bug与解决——微信公众号中弹出键盘再收起时,原虚拟键盘位点击事件无效

最近ios发布新版本系统12.1,随着部分用户的系统更新,一些问题也渐渐暴露出来... 公司用户反映微信公众号出现了点击无效的bug!!测试调查发现,只有iphonex.iphone6,ihpone7等部分机型会出现该问题 我当时就是一惊,一般出现在事件上的问题都是疑难杂症.何况是跟键盘相关的. 我们都知道在H5端是没法监控键盘的弹出与收起的,resize事件触发的机型极其有限,何况我在ios中实测没有触发,安卓反而可以.因为安卓弹起键盘时会修改视窗的大小,但是ios并不会,如果你在ios上设置

iOS开发之Bug

前言:收集在开发和学习的过程中遇到的bug. 1.循环利用cell的ID设置位置写错了.导致程序奔溃. 2.对于除数算法,可以直接算出结果的就写上结果,不要偷懒写式子让计算机自己算,更何况是除数,会有算出无限小数的可能性. 3.更改连线好的属性名,别忘了重新连线,否则会出现容易看不出来的bug 4.slider不断的调用相关的方法和刷新,这个方法如果传递的参数可能比较占内存,比如某个对象,传递过程可能会跟不上slider的刷新速度,这里就需要对其进行处理,或者是另寻它法. 5.对于工程中有很多很

iOS红马甲项目Bug总结(2)

背景:iOS调用相机和访问图库 一.调用相机或图库: -(void)imgviewClick { ALAuthorizationStatus author = [ALAssetsLibrary authorizationStatus]; AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo]; UIAlertController *alertvc=[

[iOS] 使用UIRefreshControl 实现 UITableView下拉刷新(Swift版本)

首先,在viewDidLoad中初始化相关数据: override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. //添加刷新 refreshControl.addTarget(self, action: "refreshData", forControlEvents: UIControlEvents.ValueChanged) refreshCon

ios 键盘弹起bug,出现的问题,光标穿透,页面无法点击

有时候使用ios输入键盘以后,直接点击页面按钮会出现事件无效. 解决方法: 1. 输入框输入后点击提交按钮后,弹窗会发现光标穿透问题 解决方法: 使用input blur()事件使input失去焦点 $('.btn').on('tap',function(){ $("input").blur(); }) 2.事件失效 抬起键盘后点击页面弹出窗口后,事件失效,页面无交互,点击无效果,滑动以后才有能再次点击 解决方法: 侦听input事件失去焦点效果,然后修改body的scrollTop,

百度糯米iOS客户端登录BUG

环境 设备:iphone5s 网络:WIFI App版本: 操作步骤 1.进入登录界面 2.输入手机号 3.点击[获取验证码],等待接收验证码后 4.点击[X]退出登录界面 5.重复1-2-3,提示手机号输入有误或验证码发送失败,请稍后再试 频率 必现 危害 1.第二次登录时,不点击获取验证码时,用第一次的验证码偶尔也可以登录成功,这可能有账号安全的问题 2.尝试多次后,重启App再次尝试登录后,一直报手机号输入有误或验证码发送失败,请稍后再试,无法登录了已经. 原因分析 用Charles查看了