#import "AppDelegate.h"
@interface AppDelegate ()
// 管理一个类私有的属性和方法
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application
// 系统命名三个方式 did、should、will
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// 创建一个window对象,大小和屏幕一样
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
// = 左侧最靠近 = 的 . 是 setter 方法,其余是 getter 方法
// 设置window的背景颜色
self.window.backgroundColor = [UIColor whiteColor];
// 设置window为主window,并且可见
[self.window makeKeyAndVisible];
// 内存管理,释放 alloc,引用计数为1
[_window release];
// UIView
// UIView是iOS中所有控件类的基类
// 是屏幕上的一块矩形区域
// 学习一个新类:
// 1. 看头文件,看类的继承关系
// 2. 找有没有自己的初始化方法
// 3. 看属性列表
/* 3.5 320 * 480
4 320 * 568
4.7 375 * 667
5.5 414 * 736
*/
// 1. 创建一个view,指定view在父视图上的位置和大小
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(135, 267, 100, 100)];
// 2. 对view进行相关的设置
view.backgroundColor = [UIColor orangeColor];
// 3. 添加到父视图上
[self.window addSubview:view];
// 4. 内存管理
[view release];
UIView *view1 = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
view1.backgroundColor = [UIColor blueColor];
[self.window addSubview:view1];
[view1 release];
// frame 一个 view 相对于父视图的位置和大小
view.frame = CGRectMake(100, 100, 200, 200);
// center: 一个 view 的中心点相对于父视图的位置
view.center = CGPointMake(200, 350);
// bounds: 一个 view 相对于自己的坐标系的位置和大小
view.bounds = CGRectMake(10, 10, 100, 10);
// alpha是一个0-1的数,代表view的透明度,会影响所有的子视图
view.alpha = 0.5;
// 视图是否隐藏(BOOL类型,YES隐藏/NO显示)
view.hidden = NO;
// 标记一个view,方便父视图快速的检索子视图,所有标记默认为0
view.tag = 10000;
// 父视图通过tag找子视图
// UIView *seachView = [self.window viewWithTag:10000];
// UILabel
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 100, 100, 100)];
label.backgroundColor = [UIColor greenColor];
// 显示的文字
label.text = @"AAABBBCCCDDDEEEFFF";
// 字体颜色
label.textColor = [UIColor yellowColor];
// 改变字体大小,默认17号
label.font = [UIFont systemFontOfSize:20];
// 文本的对齐方式
label.textAlignment = NSTextAlignmentCenter;
label.shadowColor = [UIColor grayColor];
label.shadowOffset = CGSizeMake(3, 3);
// 如果文本过长,文本的断行方式
// 枚举类型的标志 mode type option style
label.lineBreakMode = NSLineBreakByTruncatingHead;
// 显示的行数(当设置为0的时候,label会根据自己的frame大小,自己设置行数)
label.numberOfLines = 0;
// 让label自己适应内容的大小
[label sizeToFit];
[self.window addSubview:label];
[label release];
UIView *view2 = [[UIView alloc] initWithFrame:CGRectMake(200, 300, 50, 50)];
view2.backgroundColor = [UIColor redColor];
[self.window addSubview:view2];
[view2 release];
// UIView的层级关系
// 1. 任何一个view只能有一个父视图,但是可以有很多个子视图(树形结构)
// 2. 父视图对任何子视图都有所有权关系,添加子视图的时候,会对子视图对象的引用计数+1
// 3. 父视图和子视图的概念是相对而言的
// 4. 所有的子视图位置都是以 父视图的坐标系 做标准
// 调整子视图的顺序
[self.window bringSubviewToFront:view];
[self.window sendSubviewToBack:view];
// 子视图自己从父视图移除,且该子视图的子视图同时移除
[view2 removeFromSuperview];
return YES;
}
// 释放 setter 方法的引用计数,之后为0
- (void)dealloc
{
[_window release];
[super dealloc];
}