zoukankan      html  css  js  c++  java
  • 视图UIView的大小和位置属性详解

    UIView类中定义了三个属性,分别是frame、bounds与center属性:

    IKit中的坐标系X轴正方向为水平向右,Y轴正方向为竖直向下。

    frame属性指的是视图在其父视图坐标系中的位置与尺寸。在创建视图时,我们就需要在初始化方法中指定视图的frame:

    1 - (id)initWithFrame:(CGRect)frame; 

    这样创建了视图之后,通过addSubview:方法就可以将创建的子视图放置在父视图的指定位置,并以指定的尺寸显示出来。

    center属性理解起来也很简单,它就是视图的中心点在其父视图坐标系中的位置坐标。简单讲,center属性就定义了当前视图在父视图中的位置。

    那么bounds属性呢?它指的是视图在其自己的坐标系中的位置与尺寸。

    由于视图的定位一定需要针对父视图,而不是针对自己,所以bounds属性并不能够决定当前视图的位置(因为它与父视图根本无关,就谈不上定位),所以bounds属性与center属性是完全独立的,前者规定尺寸,后者定义位置。换句话说,修改bounds不影响center;修改center不影响bounds。

    默认情况下,当视图创建后,其自己的坐标系原点(0, 0)位于其左上角位置。不过,本地原点位置是会随时发生变化的。例如将bounds由最初的(0, 0, 100, 100)修改为(50, 50, 100, 100),则意味着本地原点向左向上移动了50。由于位置和尺寸都未发生变化,所以frame属性与center属性不变。

    总结:当修改了视图自身的原点位置时,不会影响其自身的位置,而会影响到其子视图的位置。

    摘自:http://blog.csdn.net/pucker/article/details/7634479  感谢博主的分享

  • 相关阅读:
    002: Opencv 4.0代码执行
    Opencv4.0+cmake3.13.3+vs2017源码编译
    ubuntu 18.0Lts +YouCompleteMe插件安装
    pip 安装keras
    pip 安装paddle
    pip 安装 tensorboardX
    pip 安装pytorch 命令
    TT信息-4-Spring Boot/Spring Cloud
    TT信息-3-Spring/Spring MVC
    TT信息-2设计模式
  • 原文地址:https://www.cnblogs.com/cy568searchx/p/5912044.html
Copyright © 2011-2022 走看看