码迷,mamicode.com
首页 > 移动开发 > 详细

iOS CGRectInset,CGRectOffset

时间:2015-07-31 12:58:42      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:ios   cgrectinset   cgrectoffset   


iOS 中有两个有关Rect的方法我们对比这着看一下

CGRectInset,CGRectOffset



我们先看一看 官方给出的解释


/* Inset `rect‘ by `(dx, dy)‘ -- i.e., offset its origin by `(dx, dy)‘, and

   decrease its size by `(2*dx, 2*dy)‘. */


大致意思为: 通过 第二个参数 dx和第三个参数 dy 重置第一个参数rect 作为结果返回。重置的方式为,首先将rect 的坐标(origin)按照(dx,dy) 进行平移,然后将rect的大小(size) 宽度缩小2倍的dx,高度缩小2倍的dy;

CG_EXTERN CGRect CGRectInset(CGRect rect, CGFloat dx, CGFloat dy)

  CG_AVAILABLE_STARTING(__MAC_10_0, __IPHONE_2_0);




/* Offset `rect‘ by `(dx, dy)‘. */


大致意思:rect 按照(dx,dy)进行平移

CG_EXTERNCGRect CGRectOffset(CGRect rect,CGFloat dx, CGFloat dy)

 CG_AVAILABLE_STARTING(__MAC_10_0, __IPHONE_2_0);


下面我们用例子来看一下

首先我们测试CGRectInset 先创建一个view1设置一个背景色,在创建一个view2使用CGRectInset 将他的大小按照view1的大小进行修改设置一个不同的颜色进行测试

代码如下

-(void)testCGRectInset
{
    UIView *view1=[[UIView alloc]initWithFrame:CGRectMake(120, 120, 200, 200)];
    [view1 setBackgroundColor:[UIColor grayColor]];//view1 设置为灰色
    [self.view addSubview:view1];
    
    //根据view1的大小变换后创建view2;
    CGRect view2Rect=CGRectInset(view1.frame, 20, 20);
    UIView *view2=[[UIView alloc]initWithFrame:view2Rect];
    [view2 setBackgroundColor:[UIColor blueColor]];//view2 设置为蓝色
    [self.view addSubview:view2];
    
    
}

运行结果如下

技术分享


我们可以看到 蓝色首先按照我们给的参数做了平移 然后对大小做了缩放。

这里我们变化你的时候给的参数都是正数,如果给成负数会怎样了 大家可以去试试

    //根据view1的大小变换后创建view2;
    CGRect view2Rect=CGRectInset(view1.frame, -20, -20);



下来我们看第二个方法,也是同样的思路

代码如下

-(void)testCGRectOffset
{
    UIView *view1=[[UIView alloc]initWithFrame:CGRectMake(120, 120, 200, 200)];
    [view1 setBackgroundColor:[UIColor grayColor]];//view1 设置为灰色
    [self.view addSubview:view1];
    
    //根据view1的大小变换后创建view2;
    CGRect view2Rect=CGRectOffset(view1.frame, 20, 20);
    UIView *view2=[[UIView alloc]initWithFrame:view2Rect];
    [view2 setBackgroundColor:[UIColor blueColor]];//view2 设置为蓝色
    [self.view addSubview:view2];
    
    
}

结果如下图

技术分享


我们看到相比较与上一个方法 他只做了平移 没有做大小缩放


好了 两个方法 都已经实验了 

如果还有问题  可以加群讨论


苹果开发群 :414319235  欢迎加入  欢迎讨论问题


版权声明:本文为博主原创文章,未经博主允许不得转载。

iOS CGRectInset,CGRectOffset

标签:ios   cgrectinset   cgrectoffset   

原文地址:http://blog.csdn.net/lwjok2007/article/details/47167545

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!