iOS CGRectInset的使用方法

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

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

下面通过示例进行说明:

OC示例:

  - (void)demoTest {
    UIView *view1 = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 200, 200)];
    view1.backgroundColor = [UIColor redColor];
    [self.view addSubview:view1];
    NSLog(@"111=%@", NSStringFromCGRect(view1.frame));
    // 111={{100, 100}, {200, 200}}
    
    CGRect rect = CGRectInset(view1.frame, 30, 30);
    UIView *view2 = [[UIView alloc] initWithFrame:rect];
    view2.backgroundColor = [UIColor yellowColor];
    [self.view addSubview:view2];
    NSLog(@"222=%@", NSStringFromCGRect(view2.frame));
    // {{130, 130}, {140, 140}}
}
  • 运行结果:


    屏幕快照 2016-12-02 下午1.58.22.png
  • 控制台打印可以看出,view1的frame值为111={{100, 100}, {200, 200}};view2的frame值为222={{130, 130}, {140, 140}}。

swift的示例:

func demoTest() {
         let view1 = UIView(frame:CGRect(x: 100, y: 100, width: 200, height: 200))
        view1.backgroundColor = #colorLiteral(red: 0.8549019694, green: 0.250980407, blue: 0.4784313738, alpha: 1)
        view.addSubview(view1)
        print(view1.frame)  // (100.0, 100.0, 200.0, 200.0)
        
        let rect = view1.frame.insetBy(dx: 30, dy: 30)
        let view2 = UIView(frame: rect)
        view2.backgroundColor = #colorLiteral(red: 0.9529411793, green: 0.6862745285, blue: 0.1333333403, alpha: 1)
        view.addSubview(view2)
        print(view2) // frame = (130 130; 140 140)
    }
  • 运行结果:


    屏幕快照 2016-12-02 下午2.04.38.png
  • 控制台输入view1的frame值为 (100.0, 100.0, 200.0, 200.0),view2的frame值为(130 130; 140 140).
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 初识iOS APP开发#### 在iOS APP开发中, main函数仍是程序的入口和出口, 但main函数不需要...
    DeanYan阅读 6,382评论 0 3
  • 原链接:http://www.jianshu.com/p/964313cfbdaa 原作者:西木柚子 仅供我个人收...
    油菜花花花花阅读 630评论 0 1
  • 在5月份读完《中国文化的命运》,并于5月31日前将读书笔记(不少于1000字)或原创书评(不少于500字)...
    三六书屋阅读 576评论 4 1
  • 雨夜,无眠。 梅子黄时雨。这个秋天,来得比往年早了些,阴雨绵绵,连续下了好多天,似是南方的梅子雨,而温度,却又是不...
    何遇chy阅读 345评论 0 0
  • 这段时间因为有时间和精力,我开始更多的关注我身边的年轻父母们以及她们的宝宝们(除了我所在小区里的孩子们,更多...
    张小新1987阅读 940评论 0 9