使用CollectionView做横向滑动分页效果:
一开始几页滑动是没有问题的,等滑到三四个页面之后,就出现奇怪的缝隙,一开始死活找不到原因,最后在layout的代理方法minimumLineSpacingForSectionAtIndex返回值设置为0才解决,一开始想我只显示一行,跟这个应该没什么关系吧,就没设置,其他的两个代理方法minimumInteritemSpacingForSectionAtIndex和insetForSectionAtIndex都返回的是0.最后没辙了,1个晚上过去了,加了一个代理方法,然后问题就奇妙的解决了。
//添加UICollectionView
{
MyBigPictureFlowLayout *layout = [[MyBigPictureFlowLayout alloc] init];
//UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
[layout setScrollDirection:UICollectionViewScrollDirectionHorizontal];
self.albumCollection = [[UICollectionView alloc] initWithFrame:CGRectMake(0, 64, kAllWidth, kAllHeight - 64) collectionViewLayout:layout];
self.albumCollection.backgroundColor = [UIColor clearColor];
self.albumCollection.dataSource = self;
self.albumCollection.delegate = self;
self.albumCollection.pagingEnabled = YES;
self.albumCollection.bounces = YES;
self.albumCollection.showsVerticalScrollIndicator = NO;
self.albumCollection.showsHorizontalScrollIndicator = NO;
self.albumCollection.contentSize = CGSizeMake(kAllWidth*self.dataSource.count, kAllHeight-64);
self.albumCollection.contentOffset = CGPointMake(kAllWidth*(self.index-1), 0);
[vContainer addSubview:self.albumCollection];
//注册cell的视图
static NSString *identifer = @"BigPictureCell";
[self.albumCollection registerClass:[BigPictureCell class] forCellWithReuseIdentifier:identifer];
}
#pragma mark-Delegate的代理方法
- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section{
return 0;
}
- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section{
return 0;
}
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath{
return CGSizeMake(kAllWidth, kAllHeight - 64);
}
- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section{
return UIEdgeInsetsMake(0, 0, 0, 0);
}
UICollectionViewFlowLayout的写法:
#import <UIKit/UIKit.h>
@interface MyBigPictureFlowLayout : UICollectionViewFlowLayout
@end
#import "MyBigPictureFlowLayout.h"
@implementation MyBigPictureFlowLayout
-(NSArray *)layoutAttributesForElementsInRect:(CGRect)rect{
NSArray *answer=[[super layoutAttributesForElementsInRect:rect] mutableCopy];
for (int i=1; i<[answer count]; i++) {
UICollectionViewLayoutAttributes *currentLayoutAttributes=answer[i];
UICollectionViewLayoutAttributes *prevLayoutAttributesans=answer[i-1];
NSInteger maximumSpacing=0;
//NSInteger origin=CGRectGetMaxX(prevLayoutAttributesans.frame);
float origin = prevLayoutAttributesans.frame.origin.x + prevLayoutAttributesans.frame.size.width;
CGRect frame=currentLayoutAttributes.frame;
frame.origin.x=origin+maximumSpacing;
currentLayoutAttributes.frame=frame;
}
NSLog(@"%@",answer);
return answer;
}
@end
代码地址:http://git.oschina.net/hyp.cn/demo
使用CollectionView做横向滑动分页效果:的更多相关文章
- 实现移动端touch事件的横向滑动列表效果
要实现手机端横向滑动效果并不难,了解实现的原理及业务逻辑就很容易实现.原理:touchstart(手指按下瞬间获取相对于页面的位置)——>touchmove(手指移动多少,元素相应移动多少). ...
- 微信小程序 scroll-view 左右横向滑动没有效果(无法滑动)问题
小程序组件 scroll-view 中分别有上下竖向滑动和左右横向滑动之分,在这次项目中刚好需要用到横向滑动,但在测试过程中发现横向滑动没有了效果(静止在那里没移动过),经调试发现: 1.scroll ...
- React Native学习(七)—— FlatList实现横向滑动列表效果
本文基于React Native 0.52 Demo上传到Git了,有需要可以看看,写了新内容会上传的.Git地址 https://github.com/gingerJY/React-Native-D ...
- LinearLayout遇到的问题——利用LinearLayout做横向滑动冲突
问题:当我添加两个TextView的时候,然后滑动,发现只生成了一个TextView. 就是 <?xml version="1.0" encoding="utf-8 ...
- 小程序 scroll-view 左右横向滑动没有效果(无法滑动)问题
scroll-view 中的需要滑动的元素不可以用 float 浮动:
- 关于小程序 scroll-view 左右横向滑动没有效果(无法滑动)问题
https://www.cnblogs.com/miu-key/p/7606024.html
- 【转】Android 实现ListView的滑动删除效果
http://www.cnblogs.com/weixiao870428/p/3524055.html http://download.csdn.net/download/love_javc_you/ ...
- 《JavaScript 实战》:JavaScript 图片滑动切换效果
看到alibaba的一个图片切换效果,感觉不错,想拿来用用.但代码一大堆的,看着昏,还是自己来吧.由于有了做图片滑动展示效果的经验,做这个就容易得多了. 效果预览 仿淘宝/alibaba图片切换: 默 ...
- 使用Jquery做分页效果
之前写过一个PHP 的分页效果,但是今天小伙伴和我说了一个不适用后台单纯用前段的JS来写分页,整理了一下,代码如下: html: <div id="containet"> ...
随机推荐
- github 向导/介绍
环境:windows 7 64bit 阅读了http://guides.github.com的教程. 流程 git是协作版本管理的一种方法.工作流程是在一个主线基础上发展分支(branch),最后并入 ...
- js 获取checkbox选中项目
# //获取选中项 $('#submit').click(function () { var check_list = [] $("input[name='ck']:checked" ...
- 做了一个简易的git 代码自动部署脚本
做了一个简易的git 代码自动部署脚本 http://my.oschina.net/caomenglong/blog/472665 发表于2个月前(2015-06-30 21:08) 阅读(200 ...
- node.js 初体验
node.js 初体验 2011-10-31 22:56 by 聂微东, 174545 阅读, 118 评论, 收藏, 编辑 PS: ~ 此篇文章的进阶内容在为<Nodejs初阶之express ...
- JS Date函数操作
1. 补充Format函数 // common functionsstart Date.prototype.Format = function(fmt) { //author: meizz var o ...
- Why Apache Beam? A data Artisans perspective
https://cloud.google.com/dataflow/blog/dataflow-beam-and-spark-comparison https://github.com/apache/ ...
- 样条曲线的Fortran程序
subroutine basis_function_b_val ( tdata, tval, yval ) ! !******************************************* ...
- OAuth的机制原理讲解及开发流程
本想前段时间就把自己通过QQ OAuth1.0.OAuth2.0协议进行验证而实现QQ登录的心得及Demo实例分享给大家,可一直很忙,今天抽点时间说下OAuth1.0协议原理,及讲解下QQ对于Oaut ...
- 数据传输:JSON,XML
一.调用Ajax需要的JSON数据 1.url 处理页面 2.data 传递数据 3.datatype返回数据类型 4.type 提交数据方式 5.success成功之后 ...
- 更强大的trim功能,过滤汉字等
第一种方法:通过php自带的函数 <?php /* trim 去除一个字符串两端空格, rtrim 是去除一个字符串右部空格, ltrim 是去除一个字符串左部空格. */ ?> < ...