ios UICollectionView实现不同大小cell等间距
来源:互联网 发布:aisino金税盘开票软件 编辑:程序博客网 时间:2024/05/16 16:14
demo 下载地址:http://download.csdn.net/detail/chchong1234/8692121
左边对齐,右边不用对齐,实现了UICollectionView Cell不同大小cell等间距
在此处调用EqualSpaceFlowLayout
EqualSpaceFlowLayout *flowLayout = [[EqualSpaceFlowLayout alloc] init]; flowLayout.delegate = self; self.collectionView = [[UICollectionView alloc] initWithFrame:CGRectMake(0, 50, self.view.bounds.size.width, self.view.bounds.size.height - 100) collectionViewLayout:flowLayout]; self.collectionView.backgroundColor = [UIColor lightGrayColor]; self.collectionView.delegate = self; self.collectionView.dataSource = self; [self.view addSubview:self.collectionView]; [self.collectionView registerClass:[CustomCollectionViewCell class] forCellWithReuseIdentifier:@"CellIdentifier"];
自定义EqualSpaceFlowLayout 实现等间距
#import <UIKit/UIKit.h>@protocol EqualSpaceFlowLayoutDelegate<UICollectionViewDelegateFlowLayout>@end@interface EqualSpaceFlowLayout : UICollectionViewFlowLayout@property (nonatomic,weak) id<EqualSpaceFlowLayoutDelegate> delegate;@end
#import "EqualSpaceFlowLayout.h"@interface EqualSpaceFlowLayout()@property (nonatomic, strong) NSMutableArray *itemAttributes;@end@implementation EqualSpaceFlowLayout- (id)init{ if (self = [super init]) { self.scrollDirection = UICollectionViewScrollDirectionVertical; self.minimumInteritemSpacing = 5; self.minimumLineSpacing = 5; self.sectionInset = UIEdgeInsetsMake(10, 10, 10, 10); } return self;}#pragma mark - Methods to Override- (void)prepareLayout{ [super prepareLayout]; NSInteger itemCount = [[self collectionView] numberOfItemsInSection:0]; self.itemAttributes = [NSMutableArray arrayWithCapacity:itemCount]; CGFloat xOffset = self.sectionInset.left; CGFloat yOffset = self.sectionInset.top; CGFloat xNextOffset = self.sectionInset.left; for (NSInteger idx = 0; idx < itemCount; idx++) { NSIndexPath *indexPath = [NSIndexPath indexPathForItem:idx inSection:0]; CGSize itemSize = [self.delegate collectionView:self.collectionView layout:self sizeForItemAtIndexPath:indexPath]; xNextOffset+=(self.minimumInteritemSpacing + itemSize.width); if (xNextOffset > [self collectionView].bounds.size.width - self.sectionInset.right) { xOffset = self.sectionInset.left; xNextOffset = (self.sectionInset.left + self.minimumInteritemSpacing + itemSize.width); yOffset += (itemSize.height + self.minimumLineSpacing); } else { xOffset = xNextOffset - (self.minimumInteritemSpacing + itemSize.width); } UICollectionViewLayoutAttributes *layoutAttributes = [UICollectionViewLayoutAttributes layoutAttributesForCellWithIndexPath:indexPath]; layoutAttributes.frame = CGRectMake(xOffset, yOffset, itemSize.width, itemSize.height); [_itemAttributes addObject:layoutAttributes]; }}- (UICollectionViewLayoutAttributes *)layoutAttributesForItemAtIndexPath:(NSIndexPath *)indexPath{ return (self.itemAttributes)[indexPath.item];}- (NSArray *)layoutAttributesForElementsInRect:(CGRect)rect{ return [self.itemAttributes filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(UICollectionViewLayoutAttributes *evaluatedObject, NSDictionary *bindings) { return CGRectIntersectsRect(rect, [evaluatedObject frame]); }]];}- (BOOL)shouldInvalidateLayoutForBoundsChange:(CGRect)newBounds{ return NO;}@end
1 0
- ios UICollectionView实现不同大小cell等间距
- UICollectionView 不同大小Cell 等间距的实现
- [iOS]UICollectionView设置cell之间的间距
- UICollectionView的cell间距问题
- 【Swift】iOS UICollectionView 计算 Cell 大小的陷阱
- uicollectionview cell 行间距、列间距
- uicollectionview cell 行间距、列间距
- UICollectionview cell 行间距、列间距
- IOS 自定义UITableViewCell:Cell高度、分割线、间距等
- ios开发——解决UICollectionView的cell间距与设置不符问题
- ios开发——解决UICollectionView的cell间距与设置不符问题
- iOS UICollectionView cell 0间距问题的解决与分割线的设置
- ios UICollectionView的cell重叠
- 解决UICollectionView的cell间距与设置不符问题
- 解决UICollectionView的cell间距与设置不符问题
- iOS中UICollectionView实现单个cell滚动翻页并放大cell
- iOS 关于UICollectionView的cell重用问题
- iOS开发 怎么删除UICollectionView的cell
- 自定义view之热门标签
- IE9BUG!默认不支持console.log
- H5页面属性和元素
- JAVA设计模式之:适配器模式
- JDK DualPivotQuicksort 源码解析
- ios UICollectionView实现不同大小cell等间距
- SMAB(Simple Money Account Book)纸黄金记账软件
- word 2010配置发布CSDN博客功能
- 秦九韶算法
- LeetCode:Longest Common Prefix
- PHP获取一个月有多少天
- python登陆教学系统
- ROS 学习系列 -- image_transport 发布jpg图片文件流在image_view中看视频效果
- Spring连接各种数据库数据源