UIView 和 UIWindow 的学习内容

UIWindow是UIView的子类,一个程序只能有一个window主窗口.

在XCode7之后我们创建UIWindow的对象,代码如下:

    //创建一个窗口,使其铺满屏幕(设置大小)          初始化的时候不要用self.window,这样相当于先调用setter方法再申请空间,可能会出现传值错误

    _window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];  //UIScreen mainScreen代表满屏

    //为窗口设置属性(创建一个视图控制器,通过RGB的值进行调色)

    [self.window setBackgroundColor:[UIColor colorWithRed:166/255.0 green:100/255.0 blue:30/255.0 alpha:1]];

    //设置window的根视图控制器

    UIViewController *root = [[UIViewController alloc]init];

    [self.window setRootViewController:root];

    //绘制window(这一步一定要放到最后一步来,所有程序代码都加载好以后,再绘制Window)

    [self.window makeKeyAndVisible];

这样我们就设置好了程序的window界面,相当于设置好了一个画框.

UIView表示屏幕上的一块矩形区域,负责渲染区域的内容,并相应该区域内发生的事件.IOS中所有的可视化控件都是UIView的子类.

struct CGPoint {

    CGFloat x;

    CGFloat y;

};typedef struct CGPoint CGPoint;//点结构体

 

struct CGPoint {

    CGFloat x;

    CGFloat y;

};typedef struct CGPoint CGPoint;//确定大小的结构体

 

struct CGPoint {

    CGFloat x;

    CGFloat y;

};

typedef struct CGPoint CGPoint;//一个矩形框的结构体,IOS中使用CGRect类型确定矩形位置以及大小 

 

UIView可以看作是画布~画框做好之后,要放置画布(一共三步):

    UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];      //申请内存空间,初始化

    view.backgroundColor = [UIColor redColor];        //设置控件属性(在这里对画布UIView进行设置)

    [self.window addSubview:view];    //添加子视图

在设置控件属性这一步可以对视图进行更多的设置,比如:

  view.center = self.window.center;    //将UIView放到window的中心

  view.tag = 1;    //给视图做一个标记,在window上标记为1

想要使用的时候用:

- (nullable UIView *) viewWithTag:(NSInteger)tag;

比如:

UIView *newView = [self.window viewWithTag:1];     //父视图中tag为1的子视图

frame是UIView的重要属性,是我们用于视图布局的关键。 它决定了视图的大小和位置。frame是CGRect类型,是基于它父视图的坐标系而言的。

bounds 是CGRect,是告诉子视图本视图的原点位置.(通俗的说就是,子视图的frame的origin与父视图的bounds的origin的差,

就是子视图相对于父视图左上角的位置,如果结果为负,则子视图在父视图外) 

center  是CGPoint  指的就是整个视图的中心点,改变视图的center也会改变frame.

UIView常用的属性

 

对视图控制常用的方法:

对视图层次的管理:

 

posted @ 2015-12-29 20:00  苏武牧羊  阅读(168)  评论(0编辑  收藏  举报