使用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"> ...
随机推荐
- [Albert 朗读行动记录贴]采纳Scalers方法:口语成长行动
目标:100小时成长计划,持续朗读录音100小时. 行动计划:每天点评美音3个人的朗读,英音1个. 完成朗读计划,录一段.附录一段.1分半左右. 开始日期:3月18日 原帖: [335][合辑]Sca ...
- Ubuntu 安装搜狗拼音及fcitx
首先卸载原有ibus输入源: sudo apt-get remove ibus System Settings -> Software & Updates -> Other Sof ...
- Ecshop、Discuz! 等开源产品的局限
Ecshop.Discuz! 等开源产品的局限 记得今年年初,我初次接触Discuz!和Ecshop时,一阵阵地惊叹:成熟度这么高的产品,居然是免费的.我们这些搞传统软件开发的要怎么活?另外也奇怪,做 ...
- Yii源码阅读笔记(六)
组件(component),是Yii框架的基类,实现了属性.事件.行为三类功能,如果需要事件和行为的功能,需要继承该类,不需要可直接继承Object类: namespace yii\base; use ...
- PHP测试用例练习
本测试用例是一个判断三角形类型的练习测试用例,基于Netbeans 8.1IDE环境,和phpunit-5.2.10以及脚手架工具phpunit-skelgen-2.0.1.具体的环境搭建可参照: h ...
- Java语言基础相关问题
*动手动脑: 问题1: 仔细阅读示例: EnumTest.java,运行它,分析运行结果? 源代码: public class EnumTest { public static void main ...
- the OS maintains a number of queues
COMPUTER ORGANIZATION AND ARCHITECTURE DESIGNING FOR PERFORMANCE NINTH EDITION To do its job, the OS ...
- Subset sum problem
https://en.wikipedia.org/wiki/Subset_sum_problem In computer science, the subset sum problem is an i ...
- P1371 NOI元丹
luogu月赛的题 本来想爆搜,但是经过ly大佬的点拨,明白这是一个dp. 我们定义dp[n]为从n开始的可行串的数目,具体如下:如果n为'I',则是从n开始有多少个I,如果n为'O',既是从n开始有 ...
- 十 mybatis逆向工程
1 逆向工程 1.1 什么是逆向工程 mybaits需要程序员自己编写sql语句,mybatis官方提供逆向工程 可以针对单表自动生成mybatis执行所需要的代码(mapper. ...