frame: 该view在父view坐标系统中的位置和大小。(参照点是,父亲的坐标系统)
bounds:该view在本地坐标系统中的位置和大小。(参照点是,本地坐标系统,就相当于ViewB自己的坐标系统,以0,0点为起点),改变bounds只会改变子视图的位置,其本身位置不会发生改变(大多数在自定义的view里面是有)
center:该view的中心点在父view坐标系统中的位置和大小。(参照点是,父亲的坐标系统)
UIWindow:一个程序中至少有一个window
AppDelegata.m方法
协议中定义的这些需要实现的方法的作用:
1.-(void)applicationWillResignActive: (UIApplication *)application
说明:当应用程序将要入非活动状态执行,在此期间,应用程序不接收消息或事件,比如来电话了
2.-(void)applicationDidBecomeActive:(UIApplication *)application
说明:当应用程序入活动状态执行,这个刚好跟上面那个方法相反
3.-(void)applicationDidEnterBackground:(UIApplication *)application
说明:当程序被推送到后台的时候调用。所以要设置后台继续运行,则在这个函数里面设置即可
4.-(void)applicationWillEnterForeground:(UIApplication *)application
说明:当程序从后台将要重新回到前台时候调用,这个刚好跟上面的那个方法相反。
5.- (void)applicationWillTerminate:(UIApplication *)application
说明:当程序将要退出是被调用,通常是用来保存数据和一些退出前的清理工作。这个需要要设置UIApplicationExitsOnSuspend的键值。
6.- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application
说明:iPhone设备只有有限的内存,如果为应用程序分配了太多内存操作系统会终止应用程序的运行,在终止前会执行这个方法,通常可以在这里进行内存清理工作防止程序被终止
7.- (void)applicationSignificantTimeChange:(UIApplication*)application
说明:当系统时间发生改变时执行
8.- (void)applicationDidFinishLaunching:(UIApplication*)application
说明:当程序载入后执行
9.- (void)application:(UIApplication)application willChangeStatusBarFrame:(CGRect)newStatusBarFrame
说明:当StatusBar框将要变化时执行
10.- (void)application:(UIApplication*)application willChangeStatusBarOrientation: (UIInterfaceOrientation)newStatusBarOrientation
duration:(NSTimeInterval)duration
说明:当StatusBar框方向将要变化时执行
11.- (BOOL)application:(UIApplication*)application handleOpenURL:(NSURL*)url
说明:当通过url执行
12.- (void)application:(UIApplication*)application didChangeStatusBarOrientation:(UIInterfaceOrientation)oldStatusBarOrientation
说明:当StatusBar框方向变化完成后执行
13.- (void)application:(UIApplication*)application didChangeSetStatusBarFrame:(CGRect)oldStatusBarFrame
说明:当StatusBar框变化完成后执行
UIView重要的属性
UIView *simpleView = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
simpleView.backgroundColor = [UIColor blueColor];
//1.设置显隐性,默认为no
simpleView.hidden = NO;
//2.设置透明度
//透明度 0 为全透明
simpleView.alpha = 0.5;
//设置tag值,尽量在100以上
simpleView.tag = 101;
//添加父视图
[self.window addSubview:simpleView];
//获取父视图 强制转化
UIWindow *sWinder = (UIWindow *)simpleView.superview;
sWinder.backgroundColor = [UIColor yellowColor];
//获取子视图
NSArray *array = self.window.subviews;
for (UIView *view in array) {
NSLog(@"%@",view);
// 修改子视图的背景颜色
view.backgroundColor = [UIColor darkGrayColor];
}
屏幕的尺寸
iPhone3G/iPhone3GS/4/4S: 320*480
iPhone5/iPhone5S/iPhone5C :320*568
iPhone6/iPhone6S:375 *667
iPhone6P/6SP:414*736
打印屏幕尺寸
NSLog(@"%@",NSStringFromCGRect([UIScreen mainScreen].bounds));
//1.创建并初始化(如果有自己特有的初始化方法,直接使用,否则,使用父类的)
UILabel *nameLable = [[UILabel alloc] initWithFrame:CGRectMake(10, 100, 394, 300)];
//2.设置属性
nameLable.backgroundColor = [UIColor blueColor];
//设置文本
nameLable.text = @"林林&大宝";
nameLable.textAlignment = NSTextAlignmentLeft;//居左
nameLable.textAlignment = NSTextAlignmentRight;//居右
nameLable.textAlignment = NSTextAlignmentCenter;//居中
nameLable.textColor = [UIColor yellowColor];//改变字体颜色
nameLable.font = [UIFont systemFontOfSize:30];//默认大小17号
nameLable.text = @"linlin&dabaoNSArray and its subclass NSMutableArray manage ordered collections of objects called arrays. NSArray creates static arrays";
nameLable.font = [UIFont fontWithName:@"Symbol" size:17];
NSArray *array1 = [UIFont familyNames]; //系统提供的所有字体类型
NSLog(@"%@",array1);
//设置阴影
nameLable.shadowOffset = CGSizeMake(2, 2);
nameLable.shadowColor = [UIColor grayColor];
//设置行数
nameLable.numberOfLines = 0; //0代表多行
//设置换行模式
nameLable.lineBreakMode = NSLineBreakByTruncatingHead;
pragma mark ---layer----
//UIView z之所以能够被显示到屏幕上,是因为它内部有一个layer层,在创建UIView的时候,View内部会自行创建一个layer图层,我们可以通过view,layer访问到这个图层
//当view需要显示在屏幕上的时候,会调用drawRect方法进行绘制,并将所有的内容绘制在自己的图层上,当绘制完毕,系统会将图层copy到屏幕上,完成view显示
//也就是说view本身不具有显示的功能,具有显示功能的是它内部的图层
//设置边框
nameLable.layer.borderWidth = 10;//边框的宽度 类型转化
nameLable.layer.borderColor = [UIColor lightGrayColor].CGColor;//边框的颜色
nameLable.layer.cornerRadius = 50;//设置圆角(内切圆的半径50)
nameLable.layer.masksToBounds = YES;//切除多余的边角
nameLable.clipsToBounds = YES;//也可以进行圆角多余切除,但是效率底
//3.添加到视图
[self.window addSubview:nameLable];
UILabel *label1 = [[UILabel alloc] initWithFrame:CGRectMake(20, 40, 200, 200)];
label1.backgroundColor = [UIColor greenColor];
label1.layer.cornerRadius = 100;
label1.layer.masksToBounds = YES;
label1.text = @"💘";
label1.userInteractionEnabled = NO;//用户交互默认 是关闭的
label1.font = [UIFont systemFontOfSize:170];
[self.window addSubview:label1];
UILabel *label2 = [[UILabel alloc] initWithFrame:CGRectMake(20, 300, 300, 50)];
label2.backgroundColor = [UIColor grayColor];
label2.font = [UIFont systemFontOfSize:50];
label2.text = @"驴会倒着念";
//旋转
label2.transform = CGAffineTransformMakeRotation(M_PI);
[self.window addSubview:label2];
网友评论