代码拉取完成,页面将自动刷新
仿照豆瓣的CollectionView左边滑动加载更多
1.需要在你设置你的UICollectionView的下面的类和文件夹
导入 #import "JKCurve.h"
拖入 JKCollectionViewMoreCurveTool文件夹
2.定义下面三个属性
// 定义 JKCurve对象
@property(nonatomic,strong) JKCurve *jkCurve;
// 用来判断的一个字段(初始值赋为 1)
@property(nonatomic,strong) NSString *judge;
// 右边加载更多的最大距离
@property(nonatomic,assign) CGFloat maxPopDistance;
// 右边加载更多的距离
@property(nonatomic,assign) float popDistance;
3.在添加collectionView之后添加下面代码(collectionView要与JKCurve保持一个父类)
self.maxPopDistance = 60;
self.judge = @"1";
self.jkCurve = [[JKCurve alloc]initWithFrame:CGRectMake(self.width, 0, 0, self.height) withType:@"加载更多"];
// 这个self是collectionView与JKCurve的父类
[self addSubview:self.jkCurve];
4.导入下面的两个方法
#pragma mark 滑动的监听
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
// scrollView的x偏移量
double offsetX = scrollView.contentOffset.x;
if (offsetX<=0) return;
double scrollViewX = offsetX+self.collectionView.width;
// collectionView的滚动范围的 width
float collectionContentSizeWidth = scrollView.contentSize.width;
// 防止在走加载全部再次走下面
if([self.judge isEqualToString: @"1"]){
self.judge = @"0";
return;
}
if (scrollViewX > collectionContentSizeWidth) {
self.popDistance = (scrollViewX-collectionContentSizeWidth)*2;
if (self.popDistance >= self.maxPopDistance) {
self.popDistance = self.maxPopDistance;
}
self.jkCurve.controlPoint = CGPointMake(self.jkCurve.width-self.popDistance, self.jkCurve.height/2.0);
}
}
#pragma mark 松开手的操作
-(void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset
{
if (targetContentOffset->x == 0) return;
if (self.popDistance == self.maxPopDistance) {
self.judge = @"1";
self.popDistance = 0;
self.jkCurve.controlPoint = CGPointMake(self.jkCurve.width-1, self.jkCurve.height/2.0);
// 在此做跳转页面的操作或者其他的操作,如果你这个类是自定义的,你可以在此用block把这个方法传出去
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。