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常用的属性