解決方法
給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);