博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bounds 与frame的区别
阅读量:7243 次
发布时间:2019-06-29

本文共 952 字,大约阅读时间需要 3 分钟。

hot3.png

    UIView *view1 = [[UIView alloc] initWithFrame:CGRectMake(100, 50, 100, 100)];

    view1.backgroundColor = [UIColor blueColor];

    view1.bounds = CGRectMake(0, 100, 100, 100);

    [self.view addSubview:view1];

    

    UIView *view2 = [[UIView alloc] initWithFrame:CGRectMake(0, 110, 50, 50)];

      view2.bounds = CGRectMake(0, 0, 50, 50);

//      view2.bounds = CGRectMake(0, 50, 50, 20);

    view2.backgroundColor = [UIColor redColor];

    [view1 addSubview:view2];

    NSLog(@"bounds={%@} center={%@}",NSStringFromCGPoint(view1.bounds.origin),NSStringFromCGPoint(view1.frame.origin));

        NSLog(@"bounds={%@} center={%@}",NSStringFromCGPoint(view2.bounds.origin),NSStringFromCGPoint(view2.frame.origin));

蓝色为A视图,红色为B视图,A视图的bounds为 B加入到A   Abounds为0,100, B设置frame时,如果要从A的原点开始设置就要设置为0,100 如果要设置相对A视图以下10个像素,就要设置为A的bounds 加+相对坐标。

这样理解起来就容易多了。总结一句就是,bounds 是自己的坐标系,要在这个坐标系上加入子view 就要设置相对坐标,这个相对坐标是更根据父视图的bounds 坐标来的,初始化时bounds都为0 所以我们就可以用普通的相对值来设置frame。

转载于:https://my.oschina.net/u/1049180/blog/282464

你可能感兴趣的文章
Netflix原创视频数量增长惊人:平均每年185%
查看>>
新加坡通过电信(修正)法案 为电信媒体服务纠纷设立专门投诉渠道
查看>>
继续支持开源,IBM新型主机平台能够更好支持Spark
查看>>
阿里云欧洲、中东、日本和澳洲四大区数据中心相继启用
查看>>
印度太阳能大跃进 2017年计划实现装机100GW
查看>>
MEEM数据线可以在充电时备份手机数据
查看>>
ARM与台积电签订长期战略合作协议
查看>>
连续四年走低 PC市场被压缩的根源是什么?
查看>>
大数据来了,未来还需要会计吗?
查看>>
智利扩展光纤网络 拟扩张至少2万公里
查看>>
日本经济产业省将制定法规以确保中小规模光伏设备安全
查看>>
光伏产业链上游续涨下游跌价
查看>>
盲目崇拜大数据会让他在洪流中迷失
查看>>
智能设备数据泄露严重 物联网安全性受质疑
查看>>
7月10日云栖精选夜读:看阿里云窄带高清如何支援优酷 让《楚乔传》更清晰
查看>>
解决mysql不能创建函数
查看>>
企业服务HR SaaS谁是最强音?三家案例公司告诉你市场真实状况
查看>>
性能为王:SQL标量子查询的优化案例分析
查看>>
SAP孙丽军:用数据技术为体育行业挖掘价值
查看>>
新病毒王“永恒之石”来袭 一次用了7个NSA漏洞
查看>>