美文网首页
003:UIView

003:UIView

作者: 韩旭杰 | 来源:发表于2016-12-17 19:33 被阅读9次

什么是控件?

  • 控件的概念很宽泛,简单的理解为一个容器,这个容器的作用第装东西并把所装的东西呈现出来,一般iOS中界面上所有的展示的元素都可称为控件,如UILabelUIButtonUIImage等。

控件的继承关系

  • UIView属于UIKit框架,下面是UIKit框架下继承关系图,可一窥元素间的继承关系
3251504-c9be001af2e76054.jpg
  • UIView是控件的基础类,苹果把所有的控件的基本属性和方法都抽取到UIView类中,那么如UIButton,UILabel等类继承自UIView就拥有了其所有属性及方法。

父控件和子控件的概念

  • 控件可以理解为容器,作用就是盛放东西也就是说盛放其他控件,理论上所有的控件都可以盛放其他任意控件,注意的是用xib或者storyboard的方式创建控件就不能随心所欲的盛放所有的东西了,但是用代码创建控件是可以的。
  • 父控件:是相对于内部控件来说的,一个相对意义上较大的控件就是其内部控件的父控件。
  • 子控件:是相对盛放自己的容器来说的,一个相对意义上较小的控件就是盛放自身容器的子控件。
  • 就控制器而言,每一个控制器内部都有一个容器UIView属性:
@property(nonatomic,return) UIView *view

控制器所管理的其他所有控件都直接或者间接的是这个view的子控件

UIView的常见属性


//获得自己的父控件对象
@property(nonatomic,readonly) UIView *superview;

//获得自己的所有子控件对象
@property(nonatomic,readonly,copy) NSArray *subviews;

//控件的ID(标识),父控件可以通过tag来找到对应的子控件
@property(nonatomic) NSInteger tag;

//控件的形变属性(可以设置旋转角度、比例缩放、平移等属性)
@property(nonatomic) CGAffineTransform transform;

//控件矩形框在父控件中的位置和尺寸(以父控件的左上角为坐标原点)
@property(nonatomic) CGRect frame;

//控件矩形框的位置和尺寸(以自己左上角为坐标原点,所以bounds的x、y一般为0)
@property(nonatomic) CGRect bounds;

//控件中点的位置(以父控件的左上角为坐标原点)
@property(nonatomic) CGPoint center;

UIView常见方法


//添加一个子控件view
- (void)addSubview:(UIView *)view;

//从父控件中移除
- (void)removeFromSuperview;

//根据一个tag标识找出对应的控件(一般都是子控件)
- (UIView *)viewWithTag:(NSInteger)tag;

UIKit框架坐标系

  • 在UIKit中坐标系的原点(0,0)在左上角,X值的正方向是向右,Y的正方向是向下
Snip20161217_11.png

相关文章

网友评论

      本文标题:003:UIView

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