解决方法
给UICollectionViewCell中加和cell同等大小的view,view的frame写成:
view.frame = CGRectIntegral(CGRectMake(0, 0, cellWidth, cellHeight));
CGRect CGRectIntegral(CGRect rect)是根据一个矩形,返回四个参数都是整数的矩形
CGGeometry.h文件中封装的一些常用方法。
- 创建一个点
CGPoint CGPointMake(CGFloat x, CGFloat y);
- 创建一个尺寸
CGSize CGSizeMake(CGFloat width, CGFloat height);
- 创建一个矢量
CGVectorMake(CGFloat dx, CGFloat dy);
- 创建一个矩形
CGRect CGRectMake(CGFloat x, CGFloat y, CGFloat width, CGFloat height);
- 获得矩形最左边的x值
CGFloat CGRectGetMinX(CGRect rect);
- 获取矩形中点的x值
CGFloat CGRectGetMidX(CGRect rect);
- 获取矩形最右端的x值
CGFloat CGRectGetMaxX(CGRect rect);
- 获取矩形最上端的y值
CGFloat CGRectGetMinY(CGRect rect);
- 获取矩形中心点的y值
CGFloat CGRectGetMidY(CGRect rect);
- 获取矩形最下端的y值
CGFloat CGRectGetMaxY(CGRect rect);
- 获取矩形宽度
CGFloat CGRectGetWidth(CGRect rect);
- 获取矩形高度
CGFloat CGRectGetHeight(CGRect rect);
- 判断两个点是否相等
bool CGPointEqualToPoint(CGPoint point1, CGPoint point2);
- 判断两个尺寸是否相等
bool CGSizeEqualToSize(CGSize size1, CGSize size2);
- 判断两个矩形是否相等
bool CGRectEqualToRect(CGRect rect1, CGRect rect2);
- 根据一个矩形创建一个标准的矩形
CGRect CGRectStandardize(CGRect rect);
- 判断是否为零矩形
bool CGRectIsEmpty(CGRect rect);
- 判断是否为空矩形
CGRectIsNull(CGRect rect);
- 判断是否为无限矩形
bool CGRectIsInfinite(CGRect rect);
- 创建一个内嵌的矩形,中心和rect参数的中心一样,dx,dy对应内嵌的宽度和高度
CGRect CGRectInset(CGRect rect, CGFloat dx, CGFloat dy);
比如:CGRect rect= CGRectInset(CGRectMake(0, 0, 100, 100), 10, 10);
会创建出的rect为(10,10,80,80),dx,dy也可以为负值,则是创建出来的矩形会大于原矩形范围。
- 根据一个矩形,返回四个参数都是整数的矩形
CGRect CGRectIntegral(CGRect rect)
- 返回两个矩形的并集
CGRect CGRectUnion(CGRect r1, CGRect r2);
- 返回两个矩形的交集,如果没有交集,返回空矩形
CGRect CGRectIntersection(CGRect r1, CGRect r2);
- 返回一个矩形,偏移量相对于rect
CGRect CGRectOffset(CGRect rect, CGFloat dx, CGFloat dy);
- 判断点是否在矩形内
bool CGRectContainsPoint(CGRect rect, CGPoint point);