关于CGRectInset和CGRectOffset简单说明

本文详细解析了iOS开发中常用的CGRectInset与CGRectOffset方法。通过实例代码展示了这两种方法如何改变CGRect的位置和尺寸,并附有官方文档解释。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先确定这两个方法都是对CGRect类型的变量进行操作的,写iOS动画代码时经常用到。

1. CGRectInset

不多说,上代码:

// center 为 (200, 200), 由(100+200/2, 100+200/2)得
CGRect originalRect = CGRectMake(100, 100, 200, 200);

CGRect rect_Inset1 = CGRectInset(originalRect, 10, 10);
CGRect rect_Inset2 = CGRectInset(originalRect, -10, -10);

NSLog(@"原始矩形大小:%@", NSStringFromCGRect(originalRect));
NSLog(@"dx=10, dy=10, CGRectInset:%@", NSStringFromCGRect(rect_Inset1));
NSLog(@"dx=-10, dy=-10, CGRectInset:%@", NSStringFromCGRect(rect_Inset2));

结果如下:

原始矩形大小:{{100, 100}, {200, 200}}
dx=10, dy=10, CGRectInset:{{110, 110}, {180, 180}}
dx=-10, dy=-10, CGRectInset:{{90, 90}, {220, 220}}

根据结果得知:
1. 原始矩形center不变,始终是(200, 200);
2. 原始矩形size变化,width = width-2*dx, height = height-2*dy;
图解:
这里写图片描述
官方文档:

/* Inset `rect' by `(dx, dy)' -- i.e., offset its origin by `(dx, dy)', and
   decrease its size by `(2*dx, 2*dy)'. */

2. CGRectOffset

还是上代码:

CGRect originalRect = CGRectMake(100, 100, 200, 200);

CGRect rect_Offset1 = CGRectOffset(originalRect, 10, 10);
CGRect rect_Offset2 = CGRectOffset(originalRect, -10, -10);

NSLog(@"原始矩形大小:%@", NSStringFromCGRect(originalRect));
NSLog(@"dx=10, dy=10, CGRectOffset:%@", NSStringFromCGRect(rect_Offset1));
NSLog(@"dx=-10, dy=-10, CGRectOffset:%@", NSStringFromCGRect(rect_Offset2));

结果如下:

原始矩形大小:{{100, 100}, {200, 200}}
dx=10, dy=10, CGRectOffset:{{110, 110}, {200, 200}}
dx=-10, dy=-10, CGRectOffset:{{90, 90}, {200, 200}}

根据结果得知:
1. 原始矩形size不变,始终是 (200, 200);
2. 原始矩形center改变,x = x+dx, y = y+dy;
图解:
这里写图片描述
官方文档:

/* Offset `rect' by `(dx, dy)'. */
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值