IOS开发 把长度不等的UICollectionView 的cell 居左
来源:互联网 发布:华东师大公共数据 编辑:程序博客网 时间:2024/04/27 21:45
//首先自定义一个 EqualSpaceFlowLayout的类继承于 UICollectionViewFlowLayout
//在.h文件中
@protocol EqualSpaceFlowLayoutDelegate<UICollectionViewDelegateFlowLayout>
@end
@interface EqualSpaceFlowLayout :UICollectionViewFlowLayout
@property (nonatomic,strong)NSMutableArray *itemAttributes;
@property (nonatomic,weak)id<EqualSpaceFlowLayoutDelegate> delegate;
@end
//在.m文件中 直接粘贴下面的代码就行了
-(NSArray*)layoutAttributesForElementsInRect:(CGRect)rect
{
NSMutableArray* attributes = [[superlayoutAttributesForElementsInRect:rect]mutableCopy];
for(int i =1; i < [attributescount]; ++i) {
//当前attributes
UICollectionViewLayoutAttributes *currentLayoutAttributes = attributes[i];
//上一个attributes
UICollectionViewLayoutAttributes *prevLayoutAttributes = attributes[i -1];
// NSLog(@"%ld %ld", currentLayoutAttributes.indexPath.section, currentLayoutAttributes.indexPath.row);
if (currentLayoutAttributes.indexPath.section == prevLayoutAttributes.indexPath.section && currentLayoutAttributes.frame.origin.x != 0
) {
//我们想设置的最大间距,可根据需要改
NSInteger maximumSpacing = 10;
//前一个cell的最右边
NSInteger origin = CGRectGetMaxX(prevLayoutAttributes.frame);
//如果当前一个cell的最右边加上我们想要的间距加上当前cell的宽度依然在contentSize中,我们改变当前cell的原点位置
//不加这个判断的后果是,UICollectionView只显示一行,原因是下面所有cell的x值都被加到第一行最后一个元素的后面了
if( origin + maximumSpacing + currentLayoutAttributes.frame.size.width <=self.collectionViewContentSize.width-10) {
CGRect frame = currentLayoutAttributes.frame;
frame.origin.x = origin + maximumSpacing;
currentLayoutAttributes.frame = frame;
}
else {
CGRect frame = currentLayoutAttributes.frame;
frame.origin.x = maximumSpacing;
frame.origin.y =CGRectGetMaxY(prevLayoutAttributes.frame) + maximumSpacing;
currentLayoutAttributes.frame = frame;
}
}
}
return attributes;
}
- IOS开发 把长度不等的UICollectionView 的cell 居左
- iOS开发 怎么删除UICollectionView的cell
- ios UICollectionView的cell重叠
- iOS 自定义不等高的cell
- iOS开发之有趣的UI —— 自定义不等高cell
- iOS 关于UICollectionView的cell重用问题
- [iOS]UICollectionView设置cell之间的间距
- 自定义不等高的cell
- 自定义不等高的cell
- iOS开发之有趣的UI —— iOS8之前和之后的自定义不等高cell
- ios开发——解决UICollectionView的cell间距与设置不符问题
- iOS项目开发实战——实现UICollectionView的动态增加Cell与Section
- ios开发——解决UICollectionView的cell间距与设置不符问题
- iOS开发:xib之UICollectionView自定义cell
- 【Swift】iOS UICollectionView 计算 Cell 大小的陷阱
- 自定义不等高cell的storyboard方法
- UICollectionView的cell间距问题
- UICollectionView的Cell加载动画
- 用gridview模仿日历并实现签到功能
- C++ typedef用法小结 (※不能不看※)
- 欢迎使用CSDN-markdown编辑器
- Linux下的RTC子系统设备驱动
- Sybase数据库的连接,JNDI,Hibernate配置
- IOS开发 把长度不等的UICollectionView 的cell 居左
- C#调用C++的方法
- 控制反转与依赖注入
- JDK中rt.jar、tools.jar和dt.jar的理解
- 抑制话筒自激啸叫的方法
- java反射讲解实例
- Kibana的图形化——Tile Map
- 第0章 计算机概论
- 关于有偿提供拼图响应式后台的通知