tableView内部加载collectionView
-
注意tableView行高可以通过计算手动设定,通过数组数据,不要通过cell内部来计算,这样会存在复用的问题.
产生了bug. -
内部的collectionView存在的数据错乱的问题,需要在数据源set方法内舒心collectionView这样可以避免sh
#import <UIKit/UIKit.h>
@interface LMCollectionFlowLayout : UICollectionViewFlowLayout
/**
collectionView的真实高度
*/
@property (assign,nonatomic) CGFloat collectionViewHeight;
@end
/// 此方法可以截取到flowLayout帮我们自动计算好的所有collectionView的item的frame信息
-(NSArray<UICollectionViewLayoutAttributes *> *)layoutAttributesForElementsInRect:(CGRect)rect
{
NSArray<UICollectionViewLayoutAttributes *> *itemArr = [super layoutAttributesForElementsInRect:rect];
// 获取最后一行的item的最大y值
self.collectionViewHeight = CGRectGetMaxY(itemArr.lastObject.frame);
return itemArr;
}
流布局item
self.minimumLineSpacing = 7.5;
self.itemSize = CGSizeMake(50, 50);
self.minimumInteritemSpacing = (ScreenWidth -2*38 - 50*4)/3;
创建文件需要的配置collectionView,注意创建的时候一定要配置流布局对象不然就会崩
self.collectionView.dataSource = self;
self.collectionView.delegate = self;
[self.collectionView registerNib:[UINib nibWithNibName:CellIdentifier bundle:nil] forCellWithReuseIdentifier:CellIdentifier];
self.collectionView.backgroundColor = [self setGBRWithR:249 andG:249 andB:249];
self.collectionView.showsVerticalScrollIndicator = NO;
self.collectionView.showsHorizontalScrollIndicator = NO;
self.collectionView.bounces = NO;
出现状况:本来应该每行显示三个结果显示两个.
-
原因:
Snip20161018_8.png
网友评论