CGRectOffset与CGRectInset的计算公式

今天看代码时,碰到了CGRectInset 和 CGRectOffset , 然后就搜了一下,将结果显示如下:

(1)CGRectInset 

      CGRect CGRectInset (

          CGRect rect,

          CGFloat  dx,

          CGFloat  dy

      );

   该结构体的应用是以原rect为中心,再参考dx , dy, 进行缩小或者放大。

举例如下:

        CGRect r1 = CGRectMake(100, 100, 50, 50);

        CGRect r3 = CGRectInset(r1, 10, 8); //结果应为:110 108 30 34

        //计算公式如下:

        r1.origin.x += dx;  //dx可以是正数或者负数

        r1.origin.y += dy;  //dy可以是正数或者负数

        r1.size.width -= dx * 2;  

        r1.size.height -= dy * 2;   


(2)CGRectOffset 

 CGRect CGRectOffset (

              CGRect rect,

              CGFloat   dx,

              CGFloat   dy

            );

相对于原矩形原点rect (左上角的点) 沿x轴和y轴偏移

举例如下:

        float offset = -50.0;

        CGRect r1 = CGRectMake(100, 100, 50, 50);

        CGRect r2 = CGRectOffset(r1, offset, offset);  // r2.frame: (50 50 50 50)

        

        //计算公式

        r1.origin.x += offset;

        r1.origin.y += offset;  

你可能感兴趣的:(CGRectInset,CGRectOffset)