主要内容:
UI期的基础类 UIView
1.视图的位置和大小的确定,需要在视图初始化的时候(initWithFrame)需要传递一个参数,此参数为结构体(CGRect)其实就是一个矩形,该矩形分为两部分,一个用来确定位置(origin.x&origin.y)一个用来确定大小(size.width&size.height).每一个视图的frame都是以该视图父视图的左上角为(0,0)点。
2.背景颜色的设置:每一个视图及其子类都会有一个属性backgroundColor,参数为UIColor类型。
3.将初始化好的视图呈现在父视图上面:[父视图 addSubview:子视图]; addSubview调用越早,层级越是在最底层。
先上代码:
AppDelegate.m
在这里主要进行了UIView的相关创建和处理
//应用程序加载完毕,在此方法中配置窗口和必要的启动界面
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
//一般情况下只会有一个窗口,UIWindow *
//初始化窗口,[UIScreen mainScreen].bounds]整个屏幕的大小,初始化的时候,将window的大小设置为整个屏幕。
self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
//将背景色设置为透明
[self.window setBackgroundColor:[UIColor grayColor]];
//将初始化好的window设置为主window并且显示
[self.window makeKeyAndVisible];
//Xcode7之后需要此代码
[self.window setRootViewController:[[UIViewController alloc]init]];
//初始化一个视图
//设定视图的位置和大小 CGRect是一个矩形的设定,在iOS体系中原点,即(0,0)点在屏幕的左上方,横轴为x,纵轴为y
CGRect frame = CGRectMake(50, 50, 100, 100);
//初始化一个视图,确定一个view
UIView *myView = [[UIView alloc]initWithFrame:frame];
//自ios扁平化以后,所有的视图都为透明的了,为了看到视图,我们给他设置背景颜色
[myView setBackgroundColor:[UIColor redColor]];
//将初始化好的视图呈现在window上
[self.window addSubview:myView];
UIView *myView1 = [[UIView alloc]initWithFrame:CGRectMake(200, 50, 100, 100)];
[myView1 setBackgroundColor:[UIColor purpleColor]];
[self.window addSubview:myView1];
//初始化一个视图,添加到myview上面
UIView *subOfMyView = [[UIView alloc]initWithFrame:CGRectMake(30, 30, 40, 40)];
[subOfMyView setBackgroundColor:[UIColor purpleColor]];
[myView addSubview:subOfMyView];
//得到myview1的宽度
float width = [[self window] frame].size.width;
NSLog(@"%-.2f",width);
CGFloat evWidth = width/3;
//将三个视图的颜色放入数组中去
NSArray *color = [NSArray arrayWithObjects:[UIColor redColor],[UIColor yellowColor],[UIColor greenColor], nil];
for (int i = 1; i <= 3; i++) {
UIView *tempView = [[UIView alloc]init];
[tempView setFrame:CGRectMake((i-1)*evWidth, 150, evWidth, evWidth)];
[tempView setBackgroundColor:[color objectAtIndex:i-1]];
[self.window addSubview:tempView];
}
return YES;
}
在UI学习之前,首先学习Xcode的相关使用,新建文档:
选择单视图模式,命名并创建如下:
成功后在Xcode中会有如下列表:
由于在Xcode6.0以上的版本默认使用storyboard,所以一开始的时候Xcode自动生成了可视化相关文件,但今天的学习不会用到。
UIView主要在appdelegate中编写,刚开始的代码主要完成了,初始化一个window,大小为整个屏幕。然后在其上添加了若干个view视图从而达到UI初步编程的目的。运行效果如下:
需要注意的是,先插入的视图在下方,后插入的视图在上方(如果有遮盖的情况下)。
问题:在UI视图下,如何进行内存管理?