codermjlee / mjrefresh Goto Github PK
View Code? Open in Web Editor NEWAn easy way to use pull-to-refresh.
License: MIT License
An easy way to use pull-to-refresh.
License: MIT License
当view自动滚动到底部,自动出现刷新。类似于微博这种。
1.nav后面的刷新控件在停止刷新时(didFinishRefresh),最好,alpha = 0
在willBeginRefresh的时候,alpaca = 1即可
2.可以增加接口.自定义不同的下拉动画和刷新动画,可以传入图片数组or自定义的Gif图
杰哥,我gitHub用的比较菜,会加油帮忙完善框架的
用混合框架的越来越多 如果webview的下拉刷新加上 就更完美了 要不只能转头别的框架了
objc_msgSend(msgTarget(self.beginRefreshingTaget, self.beginRefreshingAction, self);
原因:
Too many arguments to function call, expected0, have3.
嗨,老师好,如果集成MJRefresh到我的SDK里面去,是不是要改掉所有的框架前缀名的,正在做这一块,差个刷新框架,目前发现这个最好用
MJ老师您好 我今天看您做的这个控件. 我根据这个改写了上拉加载的方式,无网情况下显示重新加载的按钮, 这些都弄好了 就是有个一Bug, 我知道问题发生什么位置 不知道怎么改或者改哪个属性 您能帮我看看么?
MJRefreshHeaderView.m中
当我用 UICollectionView 时
第一次有数据
刷新后
当数据源请求返回为空时,
// 保存刷新时间
[UIView animateWithDuration:MJRefreshSlowAnimationDuration animations:^{
self.scrollView.contentInsetTop = self.scrollViewOriginalInset.top;
}];
这一句会Crash
当在tabVIew 里在下啦刷新的方法里把所有数据全部删除的话,程序会崩溃;或者把所有数据全部删除,在从网络异步获取的话也会出问题。
*** Assertion failure in -[UITableView _configureCellForDisplay:forIndexPath:], /SourceCache/UIKit/UIKit-2935.138/UITableView.m:6509
footerview应该还有“下拉到底啦”这种状态。这种状态下,上拉没有activityView 和箭头图片。只有“加载完啦”之类的文字提示。
下拉刷新时,如果动作幅度比较大,不等scrollview停止滑动即松手刷新,会发现页面闪烁
在MJRefreshHeaderView.m的observeValueForKeyPath监听MJRefreshContentOffset
NSLog(@"%f", self.scrollView.mj_contentOffsetY);
会发现offset持续变小后突然变为-64,然后再变小,最后维持在-64
我修改了一下
} else if (self.state == MJRefreshStatePulling) {// 即将刷新 && 手松开
// 开始刷新
CGFloat top = self.scrollViewOriginalInset.top + self.mj_height;
if (currentOffsetY >= -top) {
self.state = MJRefreshStateRefreshing;
}
}
在设置状态变为MJRefreshStatePulling的时候判断下当前offset是否已经大于
header高度,在这个条件满足的情况下刷新就不会出现offset突变为-64再变小的问题了
unknown type name CGFloat
MJRefreshConst.h
下拉刷新的过程中有时候会出现,整个tableview向上移动的情况,希望您看一下
如果当前控制器的automaticallyAdjustsScrollViewInsets为yes,并且生效的时候。如果正在刷新状态中,点击cell进入下个控制器,再pop回来的时候tableview的contentinset的top会变成128。您可以将navigation bar的背景图片去掉后,这个automaticallyAdjustsScrollViewInsets就生效了。然后就会出现我说的这种情况
hi, @CoderMJLee
gif例子里面还没有松开手动画就动了,我觉得是否改成这样会好些?
李明杰老师, 有个工作相关的问题困惑很久, 搞不定, 我把问题发到你邮箱了[email protected] 。 麻烦帮忙解答下。
产品经理说要简洁,给那个时间也没有用户去关注到底上次的刷新是什么时候,所以要我取消那个时间,我觉得这个时间应该有个枚举值,分为 有时间的label和只有状态的label. 因为我屏蔽了时间的label的代码时,高度没有和那个刷新圆圈对齐,费了好大的劲才改了样式
NSUInteger unitFlags = NSYearCalendarUnit| NSMonthCalendarUnit | NSDayCalendarUnit |NSHourCalendarUnit |NSMinuteCalendarUnit;
修改为
NSUInteger unitFlags = NSCalendarUnitYear| NSCalendarUnitMonth | NSCalendarUnitDay |NSCalendarUnitHour |NSCalendarUnitMinute;
objc_msgSend(self.beginRefreshingTaget, self.beginRefreshingAction, self);
改为
((void(*)(id, SEL, id))objc_msgSend)(self.beginRefreshingTaget, self.beginRefreshingAction, self);
在UIColectionView中加入刷新头部控件,从服务器取得的数据量在显示时没有超过UIColectionView的高度,此时下拉没有反应,如果超过UIColectionView高度,则下拉可以刷新,麻烦MJ老师解决一下下
//self.scrollView.mj_contentInsetTop -= self.mj_height;
改为 即可
self.scrollView.mj_contentInsetTop = self.scrollViewOriginalInset.top;
事件还原
循环点击某个Item 项然后执行
headerBeginRefreshing
完成之后 调用
headerEndRefreshing
Top会不断累加
如题
MJ老师您好!
库中提供了这两个方法:
还有,MJ老师,这个除了可以自定义刷新时的文字,还可以自定义刷新时的headerView么?比如像SVPullToRefresh一样有这样的方法:
[scrollView.pullToRefreshView setCustomView:label2 forState:SVPullToRefreshStateTriggered];
[scrollView.pullToRefreshView setCustomView:label3 forState:SVPullToRefreshStateLoading];
[scrollView.pullToRefreshView setCustomView:label1 forState:SVPullToRefreshStateStopped];
这个刷新库用起来非常方便,就是可自定义的东西比较少,持续关注
[self performSelector:NSSelectorFromString(self.method) withObject:nil];
performSelector may cause a leak because its selector is unknown
比如,正在下拉刷新。。。,此时滑动到顶部的时候,自动停止,即不再刷新。
我用的scrollView,为什么end之后header不显示了,用的auto layout。
[tableView headerBeginRefreshing];
[tableView headerEndRefreshing];
自定义Cell高度不一致的时候,tableView 最后一个显示(visual)Cell和上面的元素会一次从左向右显示(动画)。而不是一次性,整体显示出来。
如题
明杰哥 ,, 如果想要自定义 刷新背景和动画 咋办? 例如 京东 等等 那样的效果.
MJRefreshConst中文字有办法国际化吗?
MJRefreshGifFooter.h MJRefreshGifFooter.m
MJRefreshGifHeader.h MJRefreshGifHeader.m 这几个文件都不存在 下载的zip 包中还是存在的。但但是pod自动导入 没有这几个文件
头部的视图内容可以自定义吗?可以动态改变吗?
例如:
部分页面需要加入文字描述,部分页面不需要文字,只需要loading动画。
MJ您好,在项目中用了你的MJRefresh感觉很方便,但不知这个框架能不能对普通UIViewController进行刷新呢,实现像对TableView进行上拉,下拉时的效果。这要很多页面中就不需要加个刷新按钮了。
谢谢了。
我的tableview有两个section,第二个section的header有标题,滚动的时候这个header会一直显示紧贴navigator bar。现在刷新的时候,滚动table,第二个section的header会悬空,跟navigator bar有一段距离,table cell的内容从这个header下面穿过去了。这应该是个bug吧?
rt
用block方式controller一直不能被释放
/**
刷新控件
*/
(void)setupRefresh
{
__weak __typeof(&*self)weakSelf = self;
[self.tableView addHeaderWithCallback:^{
//加载数据
[weakSelf refreshTableView:YES];
[weakSelf.tableView headerEndRefreshing];
}];
[self.tableView addFooterWithCallback:^{
[weakSelf refreshTableView:NO];
[weakSelf.tableView footerEndRefreshing];
}];
}
以上是我用的方式,然而我的controller却不能被释放了,换回delegate方法一切正常。
如题,header的有了,我希望做footer的,现有框架可以实现吗?谢谢!
MJRefreshConst这里面的常量字符串做成属性比较好
最好有一个属性设置一下,即是否自动加载
具体的就是各个刷新状态以及变化 给出接口方便自定义实现刷新样式 例如给出一个接口快捷的实现https://github.com/cyndibaby905/GIFRefreshControl 这样的刷新样式
best wishes
现在使用了一下,一般使用上提刷新是想获取分页的数据,现在不支持分页,无法获取当前是哪页,而且如果当这页没数据时也没显示已到底这样的标识。
希望能支持翻页功能。谢谢
[self.tableView registerClass:[RecommedTableViewCell class] forCellReuseIdentifier:@"identifier"];
如果执行了这行,刷新的数据能重新下载下来,但是界面是空白的。
注释了 反而正常的。
这行代码可以不写吗?
MJ哥 您好, 我用了你的下拉刷新控件, 如果想让控制器一加载就自动刷新 , 需要将
[self.tableView headerBeginRefreshing]; 放在 [self.tableView addHeaderWithTarget:self action:@selector(refreshStart)]; 后面才能 正常自动 刷新, 这个算不算个小Bug呀
控件快速下拉,当拉到最下面的时候,程序会crash。
我非常喜欢使用你的Refresh插件,但是有时候你更新了我不知道。如果你可以上传至cocoapods的话,那就太好了
多次调用下拉刷新停止方法如下:
dispatch_async(dispatch_get_main_queue(), ^{
[self.tableView headerEndRefreshing];
[self.tableView headerEndRefreshing];
[self.tableView headerEndRefreshing];
[self.tableView headerEndRefreshing];
});
会导致tableView整体上移。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.