一开始几页滑动是没有问题的,等滑到三四个页面之后,就出现奇怪的缝隙,一开始死活找不到原因,最后在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做横向滑动分页效果:的更多相关文章

  1. 实现移动端touch事件的横向滑动列表效果

    要实现手机端横向滑动效果并不难,了解实现的原理及业务逻辑就很容易实现.原理:touchstart(手指按下瞬间获取相对于页面的位置)——>touchmove(手指移动多少,元素相应移动多少). ...

  2. 微信小程序 scroll-view 左右横向滑动没有效果(无法滑动)问题

    小程序组件 scroll-view 中分别有上下竖向滑动和左右横向滑动之分,在这次项目中刚好需要用到横向滑动,但在测试过程中发现横向滑动没有了效果(静止在那里没移动过),经调试发现: 1.scroll ...

  3. React Native学习(七)—— FlatList实现横向滑动列表效果

    本文基于React Native 0.52 Demo上传到Git了,有需要可以看看,写了新内容会上传的.Git地址 https://github.com/gingerJY/React-Native-D ...

  4. LinearLayout遇到的问题——利用LinearLayout做横向滑动冲突

    问题:当我添加两个TextView的时候,然后滑动,发现只生成了一个TextView. 就是 <?xml version="1.0" encoding="utf-8 ...

  5. 小程序 scroll-view 左右横向滑动没有效果(无法滑动)问题

    scroll-view 中的需要滑动的元素不可以用 float 浮动:

  6. 关于小程序 scroll-view 左右横向滑动没有效果(无法滑动)问题

    https://www.cnblogs.com/miu-key/p/7606024.html

  7. 【转】Android 实现ListView的滑动删除效果

    http://www.cnblogs.com/weixiao870428/p/3524055.html http://download.csdn.net/download/love_javc_you/ ...

  8. 《JavaScript 实战》:JavaScript 图片滑动切换效果

    看到alibaba的一个图片切换效果,感觉不错,想拿来用用.但代码一大堆的,看着昏,还是自己来吧.由于有了做图片滑动展示效果的经验,做这个就容易得多了. 效果预览 仿淘宝/alibaba图片切换: 默 ...

  9. 使用Jquery做分页效果

    之前写过一个PHP 的分页效果,但是今天小伙伴和我说了一个不适用后台单纯用前段的JS来写分页,整理了一下,代码如下: html: <div id="containet"> ...

随机推荐

  1. 【Spec for GS5】不要嘲笑程序员不懂烂漫

    // // main.cpp // 生日快乐 // // Created by wasdns on 16/11/21. // Copyright © 2016年 wasdns. All rights ...

  2. js 表单内容使用ajax以json格式混合提交

    脚本代码 function submitForm(){    var post_data = $("#form1").getdict();    var data_dict = { ...

  3. 总结一下这几天学习django的心得

    总结一下这几天学习django的心得 http://www.tuicool.com/articles/jMVB3e 时间 2014-01-12 11:40:11  CSDN博客 原文  http:// ...

  4. 总结android项目的基本开发步骤(转帖)

    总结android项目的基本开发步骤(转帖)   做了几个android企业应用项目后,总结了项目的基本开发步骤,希望能够交流.一 应用规划:    ※确定功能.    ※必须的界面及界面跳转的流程. ...

  5. JavaScript函数参数与调用

    函数调用: /* 1. 函数调用 */ ,,,); /* 2. 方法调用 */ this.CName = "全局"; var o = { CName:"o类", ...

  6. QTSingleApplication使用笔记

    http://www.cnblogs.com/kevinzhwl/archive/2012/08/27/2658839.html QTSingleApplication,是Qt官方提供的,用于实现只启 ...

  7. eclipse dbviewer,eclipse java8

    进入/home/xxx(用户名)/.local/share/applications,看是否有eclipse和深度音乐desktop配置文件,为eclipse.desktop配置图标, 那现在终端输入 ...

  8. HDFS API 文件读写代码演示

    一:准备工作 1.新建class类 2.开启HDFS服务 3.将配置文件拷贝进resources路径 方便了Configuration的读取配置. 二:读出HDFS文件系统中的文件到控制台 4.读出在 ...

  9. Win7下VS2008编译QtiPlot

    Win7下VS2008编译QtiPlot By wangsh 2011-11-25 QtiPlot 是一款开源免费的科学绘图软件,可运行在多个平台(windows.Linux等)中,从功能上讲,Qti ...

  10. sort,ksort,asort的区别

    sort--对数组的val进行排序 ksort--对数组的key值进行排序 asort--对数组进行排序,键与值的对应关系不变 1.sort对数组排序 格式如下:bool sort(array &am ...