美文网首页简单的IOS专题cocoa程序员
iOS 开发 frame和Bounds的不同

iOS 开发 frame和Bounds的不同

作者: 猫爪 | 来源:发表于2015-10-15 19:07 被阅读959次

    简单的说</br>

    <code>frame</code> 指的是这个<code>view</code>在它<code>superview</code>的坐标系的坐标和大小.

    <code>bounds</code>指这个<code>view</code>在它自己坐标系的坐标和大小</div></br>

    看官方的解释图片 boyXiongboyXiong 这里写图片描述这里写图片描述

    通俗的说整个APP相当于一栋房子,而<code>frame</code>相当于窗户,窗户的位置是相对于墙壁来说的,但是<code> Bounds</code> 相当于窗户里面要显示什么内容的位置</br>

    注意: 每个新建的<code> View</code>的<code> bounds</code>默认的 <code> ( x , y ) </code> 都是 <code> ( 0 , 0 ) </code>

    但是: 如果是有导航条,且默认的控制器的<code> UIView</code>有子控件是继承<code> UIScrollView</code>的会在调用了<code> viewDidLayoutSubviews</code>这个方法中默认给这些子控件的内边距的顶部top增加导航条的高度也就是<code> 64 </code>

    经过代码测试的出的结果:

    boyXiongboyXiong

    结果表明:很明显的<code> Bounds</code>的<code> y </code> 值和内边距的<code> top </code>值发生了改变</br> 如何去掉这个功能,如果是代码创建的设置这个属性为<code> false</code>就可以了

    //Swift 写法
    self.navigationController?.automaticallyAdjustsScrollViewInsets = false
    
    如果是<code> User Interface </code> 那么就去掉勾选 boyXiongboyXiong

    相关文章

      网友评论

        本文标题:iOS 开发 frame和Bounds的不同

        本文链接:https://www.haomeiwen.com/subject/ynaocttx.html