美文网首页
iOS官方文档 Foundation篇---Geometry

iOS官方文档 Foundation篇---Geometry

作者: qianfei | 来源:发表于2019-02-11 17:59 被阅读6次

    有权力的人,只要轻声细语,每一个人都能听得详细;没权力的人,就算声嘶力竭,也没人听闻。

    ————魔王子

    CGFloat

    浮点值的基本类型

    CGPoint

    笛卡尔坐标系中的一个点

    //创建
    CGPoint point = CGPointMake(0, 0);
    CGPoint pointZero = CGPointZero;//{0,0}
    CGPoint point2 = CGPointFromString(@"{1,2}");
    //判断相等
    BOOL isEqual = CGPointEqualToPoint(point, pointZero);
    //字符串表示
    NSString *pointStr = NSStringFromCGPoint(point);//{0, 0}
    

    CGSize

    二维尺寸

    //创建
    CGSize sizeZero = CGSizeZero;
    CGSize size = CGSizeMake(1, 1);
    CGSize size2 = CGSizeFromString(@"{1,2}");//width = 1, height = 2
    //判断相等
    BOOL isEqual = CGSizeEqualToSize(size, sizeZero);
    //字符串表示
    NSString *sizeStr = NSStringFromCGSize(size1);//{1, 1}
    

    CGRect

    矩形

    //创建矩形
    CGRect rect = CGRectMake(0, 0, 40, 40);
    NSString *rectStr = NSStringFromCGRect(rect);//{{0, 0}, {40, 40}}
    CGRect rectZero = CGRectZero;//{,0,0,0,0}
    //文本的表示形式返回一个矩形
    CGRect strRect = CGRectFromString( @"{{0, 0}, {20.12345, 20.6789}}");
    
    //获取矩形值
    CGFloat maxX = CGRectGetMaxX(rect);//40
    CGFloat minX = CGRectGetMinX(rect);//0
    CGFloat maxY = CGRectGetMaxY(rect);//40
    CGFloat minY = CGRectGetMinY(rect);//0
    CGFloat midX = CGRectGetMidX(rect);//20
    CGFloat midY = CGRectGetMidY(rect);//20
    CGFloat width = CGRectGetWidth(rect);//40
    CGFloat height = CGRectGetHeight(rect);//40
    
    //将矩形划分为两个新矩形。
    /*
     rect 要切分的对象;
     slice 是一个指向切出的 CGRect 的指针;
     remainder 是指向切割后剩下的 CGRect 的指针
     amount 是你要切割的大小;
     edge 是一个枚举值,代表 amount 开始计算的方向
     CGRectMinXEdge 代表在 rect 从左往右开始切割
     CGRectMaxXEdge 代表在 rect 从右往左开始切割
     CGRectMinYEdge 代表在 rect 从上往下开始切割
     CGRectMaxYEdge 代表在 rect 从下往上开始切割
    */
    CGRect silce, remainder;
    CGRectDivide(rect, &silce, &remainder, 20,
    CGRectMinXEdge);
    // silce  {0,0,20,40}
    // remainder {20,0,20,40}
    
    //判断两个矩形是否相同
    BOOL isEqual = CGRectEqualToRect(rect, rect);//YES
    
    //判断矩形是否为空
    BOOL isnull = CGRectIsNull(rect);//NO
    
    //以已有矩形为基础通过向x轴,y轴平移产生新的矩形(正值向内平移,负值向外平移)
    CGRect rectInset = CGRectInset(rect, 1, 1);// {1,1,38,38}
    CGRect rectInset = CGRectInset(rect, -1, -1);// {-1,-1,42,42}
    
    //将矩形的边调整为整数值(只入不舍)
    CGRect rectIntegral = CGRectIntegral(strRect);//{0,0,21,21}
    
    //两矩形是否相交
    BOOL isSec = CGRectIntersectsRect(rect, RectZero);//YES
    
    //计算两个矩形的交集
    CGRect rectInter = CGRectIntersection(rect, rectIntegral);//{0,0,21,21}
    
    //计算两个矩形的并集
    CGRect rect7 = CGRectUnion(RectZero, rect);//{0,0,40,40}
    
    //矩形偏移
    CGRect RectOffset = CGRectOffset(rect, 10, 10);//{10,10,40,40}
    
    //矩形是否包含点
    BOOL pointIsIn = CGRectContainsPoint(rect, CGPointZero);//YES
    
    //矩形是否包含另一个矩形
    BOOL rectIsIn = CGRectContainsRect(rect, silce);//YES
    
    

    CGAffineTransform

    图形坐标转换

    //还原
    CGAffineTransformIdentity
    
    //默认
    CGAffineTransformMake(1, 0, 0, 1, 0, 0);
    
    //在x轴方向上平移x单位,在y轴方向上平移y单位
    CGAffineTransform transform = CGAffineTransformMakeTranslation(10, 10);
    
    //在x轴方向上缩放x倍,在y轴方向上缩放y倍
    CGAffineTransform transformscale = CGAffineTransformMakeScale(2, 0.5);
    
    //将坐标系统逆时针旋转angle弧度
    CGAffineTransform transformrotation = CGAffineTransformMakeRotation(M_PI_2);
    
    //以一个已经存在的形变为基准,在x轴方向上平移x单位,在y轴方向上平移y单位
    CGAffineTransformTranslate(transform, 10, 10);
    
    //以一个已经存在的形变为基准,在x轴方向上缩放x倍,在y轴方向上缩放y倍
    CGAffineTransformScale(transformscale, 2, 1);
    
    //以一个已经存在的形变为基准,将坐标系统逆时针旋转angle弧度
    CGAffineTransformRotate(transformrotation, M_2_PI);
    

    CGEdgeInsets

    矩形边缘

    // 上左下右
    UIEdgeInsetsMake(0, 0, 0, 0);
    

    NSRange

    范围

    //从第0位开始计算,长度为4
    NSRange range = NSMakeRange(0, 4);
    NSRange range1 = NSMakeRange(0, 5);
    
    //判断range是否相等
    BOOL isaqual = NSEqualRanges(range, range1);//NO
    
    //指定范围的交集。
    NSRange intersection = NSIntersectionRange(range, range1);//{3,1}
    
    //指示指定位置是否在给定范围内。
    BOOL isIn = NSLocationInRange(1, range1);//NO
    
    //返回范围的位置和长度的总和。
    NSUInteger max = NSMaxRange(range);//4
    
    //返回文本表示的范围。
    NSRange strRange = NSRangeFromString(@"2 3");//{2,3}
    
    //返回范围的字符串表示形式。
    NSString *rangeStr = NSStringFromRange(range);//{0, 4}
    
    //返回指定范围的并集。
    NSRange unionRange = NSUnionRange(range, range1);//{0,8}
    
    //根据内容返回范围
    NSString *text = @"qwerty";
    NSRange textRange = [text rangeOfString:@"qwe"];//{0,3}
    
    欢迎留言指正,会持续更新!!!

    相关文章

      网友评论

          本文标题:iOS官方文档 Foundation篇---Geometry

          本文链接:https://www.haomeiwen.com/subject/pqpxsqtx.html